python基础:deque的用法

deque(maxlen=N) 创建了一个固定长度的队列,当有新的记录加入而队列已满时会自动移动除最老的那条记录。

1 from collections import deque
2 d=deque(maxlen=3)
3 d.append(1)
4 d.append(2)
5 d.append(3)
6 print(d)
7 print(type(d))
8 d.append(4)
9 print(d)
View Code

输出如下:

deque([1, 2, 3], maxlen=3)
<class 'collections.deque'>
deque([2, 3, 4], maxlen=3)

虽然通过列表操作(append、del)也能够完成deque的功能,但是队列的这种解决方案要更优雅的多,运行速度也将更快。如果deque不指定队列长度,将得到一个无界限的队列,可以在两端执行添加和弹出操作,例如:

 1 from collections import deque
 2 d=deque()
 3 d.append(1)
 4 d.append(2)
 5 d.append(3)
 6 print(d)
 7 d.appendleft(4)
 8 print(d)
 9 d.pop()
10 print(d)
11 d.popleft()
12 print(d)
View Code

输出如下:

deque([1, 2, 3])
deque([4, 1, 2, 3])
deque([4, 1, 2])
deque([1, 2])

从队列两端添加或者弹出元素的复杂度都是O(1)。这和列表不同,当从列表的头部插入或者移除元素时,列表的复杂度为O(N)

转载于:https://www.cnblogs.com/yizhenfeng168/p/6916833.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值