【Python】collections.deque用法,以及双向队列实现

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

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]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值