collections.deque在Python中的迭代操作方法详解
发布时间:2023-12-15 17:04:28
在Python中,collections.deque是一种双端队列数据结构,具有高效的插入和删除操作。除了常规的数据结构操作,deque还提供了一些特殊的迭代操作方法。
首先,我们需要导入collections模块并创建一个deque对象:
from collections import deque mydeque = deque([1, 2, 3, 4, 5])
1. append(x):将元素x添加到deque的右端。示例:
mydeque.append(6) print(mydeque) # 输出:deque([1, 2, 3, 4, 5, 6])
2. appendleft(x):将元素x添加到deque的左端。示例:
mydeque.appendleft(0) print(mydeque) # 输出:deque([0, 1, 2, 3, 4, 5, 6])
3. extend(iterable):在deque的右端扩展一个可迭代对象iterable。示例:
mydeque.extend([6, 7, 8]) print(mydeque) # 输出:deque([0, 1, 2, 3, 4, 5, 6, 7, 8])
4. extendleft(iterable):在deque的左端扩展一个可迭代对象iterable(元素的顺序与迭代对象的顺序相反)。示例:
mydeque.extendleft([0, -1, -2]) print(mydeque) # 输出:deque([-2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8])
5. pop():删除并返回deque的右端的一个元素。示例:
x = mydeque.pop() print(x) # 输出:8 print(mydeque) # 输出:deque([-2, -1, 0, 1, 2, 3, 4, 5, 6, 7])
6. popleft():删除并返回deque的左端的一个元素。示例:
x = mydeque.popleft() print(x) # 输出:-2 print(mydeque) # 输出:deque([-1, 0, 1, 2, 3, 4, 5, 6, 7])
7. reverse():将deque中的元素反转。示例:
mydeque.reverse() print(mydeque) # 输出:deque([7, 6, 5, 4, 3, 2, 1, 0, -1])
8. rotate(n=1):将deque中的元素向右循环移动n步(如果n为负数,则向左循环移动)。示例:
mydeque.rotate(2) print(mydeque) # 输出:deque([0, -1, 7, 6, 5, 4, 3, 2, 1])
除了上述的基本操作方法,deque还可以使用for循环进行遍历:
for item in mydeque:
print(item)
另外,deque还可以使用切片操作来获取子序列:
subdeque = mydeque[2:5] print(subdeque) # 输出:deque([7, 6, 5])
需要注意的是,deque是一个双端队列,因此其迭代顺序与插入的顺序保持一致。
