一,概述
deque 是Python标准库 collections 中的一个类,是 double-ended queue的缩写,实现了两端都可以操作的队列,相当于双端队列。类似于 list,与list不同的是,deque实现拥有更低的时间和空间复杂度。
二,内置方法
1,添加元素
from collections import deque
dq = deque(maxlen=3) # 创建固定长度的队列
# append(x) 在队列右端(尾部)添加x,和普通的列表append方法一样
dq.append(1)
dq.append(2)
dq.append(3)
print(dq) # deque([1, 2, 3], maxlen=3)
dq.append(4) # 当新记录加入队列且队列已满,会自动从另一端移除首条记录
print(dq) # deque([2, 3, 4], maxlen=3) 左端 1 被移除
dq.appendleft(5) # appendleft(x) 在队列左端(头部)添加x
print(dq) # deque([5, 2, 3], maxlen=3) 右端 4 被移除
除了和list 一样append,还有extend添加一组元素
dq = deque() # 不指定maxlen,得到无界限的队列
# extend(x) 在队列右端(尾部)添加一组元素,和list的extend方法一样
dq.extend([1, 2, 3, 4, 5]) # deque([1, 2, 3, 4, 5])
# extendleft(x) 在队列左端(头部)添加一组元素,
dq.extendleft(['a', 'b', 'c'])
print(dq) # deque(['c', 'b', 'a', 1, 2, 3, 4, 5]) 注意插入顺序!!!
2,移除元素
dq = deque()
dq.extend([1, 2, 3, 4, 5]

本文介绍了Python collections模块中的deque类,包括其高效添加、移除元素的方法,以及如何利用deque实现类似Linux tail和文本匹配功能。还展示了如何自定义顺序双端队列和其常见应用场景。

174

被折叠的 条评论
为什么被折叠?



