欢迎访问宙启技术站
智能推送

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是一个双端队列,因此其迭代顺序与插入的顺序保持一致。