Python 双向队列Deque 模块使用详解
创建双向队列Deque序列
双向队列Deque提供了类似list的操作方法:
#!/usr/bin/python3 import collections #创建队列 d = collections.deque() d.append("1") d.append("2") d.append("3") print(len(d)) print(d[0]) print(d[-1])
执行结果:
3 1 3
两端都使用pop:
#!/usr/bin/python3 import collections #创建队列 d = collections.deque("12345") print(len(d)) print(d.popleft()) print(d.pop()) print(d)
执行结果:
5 1 5 deque(['2', '3', '4'])
我们还可以限制deque的长度:
d1 = collections.deque(maxlen=30)
当限制长度的deque增加超过限制数的项时, 另一边的项会自动删除:
#!/usr/bin/python3 import collections #创建队列 d = collections.deque(maxlen=2) d.append(1) d.append(2) print(d) d.append(3) print(d)
执行结果:
deque([1, 2], maxlen=2) deque([2, 3], maxlen=2)
添加list中各项到deque中:
#!/usr/bin/python3 import collections #创建队列 d = collections.deque([1,2,3,4,5]) print(d) d.extendleft([0]) print(d) d.extend([6,7,8]) print(d)
执行结果:
deque([1, 2, 3, 4, 5]) deque([0, 1, 2, 3, 4, 5]) deque([0, 1, 2, 3, 4, 5, 6, 7, 8])