Python - 双端队列 (Deque)
在 Python 中,双端队列 (deque) 是一种类似于栈和队列的数据结构。它允许在队列的两端进行添加和弹出操作,这使其区别于其他数据结构。下面列出了适用于双端队列的各种操作。在本文中,我们将看到每个操作的示例。 `collections` 模块用于实现双端队列。
双端队列操作
以下是使用双端队列执行的一些常用操作
append() − 此函数用于将参数中的值插入到双端队列的右侧。
appendleft() − 此函数用于将参数中的值插入到双端队列的左侧。
pop() − 此函数用于从双端队列的右侧删除一个元素。
popleft() − 此函数用于从双端队列的左侧删除一个元素。
extend(iterable) − 此函数用于在双端队列的右侧添加多个值。传递的参数是可迭代对象。
extendleft(iterable) − 此函数用于在双端队列的左侧添加多个值。传递的参数是可迭代对象。由于左侧添加,顺序会反转。
reverse() − 此函数用于反转双端队列元素的顺序。
rotate() − 此函数根据参数中指定的数字旋转双端队列。如果指定的数字为负数,则向左旋转;否则向右旋转。
示例
下面的程序演示了如何使用双端队列和 `collections` 模块实现上述操作。
import collections de = collections.deque([10,20,30,40]) print(de) de.append(50) print ("\nAppending at right the deque is : ") print (de) de.appendleft(60) print ("\nAppending at left the deque is : ") print (de) de.pop() print ("\nDeleting from right the deque is: ") print (de) de.popleft() print ("\nDeleting from left the deque is: ") print (de) de.extend([70,80]) print ("\nExtending deque at end is : ") print (de) de.extendleft([100,90]) print ("\nExtending deque at beginning is : ") print (de) de.rotate(-2) print ("\nRotating deque is : ") print (de) de.reverse() print ("\nReversing deque is : ") print (de)
输出
运行以上代码将得到以下结果:
deque([10, 20, 30, 40]) Appending at right the deque is : deque([10, 20, 30, 40, 50]) Appending at left the deque is : deque([60, 10, 20, 30, 40, 50]) Deleting from right the deque is: deque([60, 10, 20, 30, 40]) Deleting from left the deque is: deque([10, 20, 30, 40]) Extending deque at end is : deque([10, 20, 30, 40, 70, 80]) Extending deque at beginning is : deque([90, 100, 10, 20, 30, 40, 70, 80]) Rotating deque is : deque([10, 20, 30, 40, 70, 80, 90, 100]) Reversing deque is : deque([100, 90, 80, 70, 40, 30, 20, 10])
广告