avatar

python的deque的用法

deque 介绍

Python中的collentions中有一个deque,这个对象类似于list列表,但是使用list存储数据是,按索引访问元素很快,但是插入和删除就很慢了,因为list是线性存储,数据量大的时候,插入和删除效率很低。
但是deque是为了实现插入和删除操作的双向列表,适用于队列和栈:

1
2
3
4
5
from collection import deque

q = deque([]) # 使用deque 必须是可迭代对象

dq = deque(range(10), maxlen=10) # 可以通过maxlen指定队列长度

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q2HqWweb-1596011444350)(evernotecid://9775C0FD-89E0-4480-9298-5F976A0156D5/appyinxiangcom/28787127/ENResource/p28)]

添加元素

deque是通过extend方法初始化集合元素,同时可以通过extendleft/appendleft将结合元素从左边加到集合。

  • extend
  • append
  • extendleft
  • appendleft

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7LiKNVok-1596011444352)(evernotecid://9775C0FD-89E0-4480-9298-5F976A0156D5/appyinxiangcom/28787127/ENResource/p29)]

弹出元素

  • pop
  • popleft

线程

deque是线程安全的,也就是说你可以同时从deque集合的左边和右边进行操作而不会有影响

文章作者: L1uNan
文章链接: http://www.nanpy.top/posts/548a2ed5.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 NanPy
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论