• 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)

  • 相关阅读:
    学姐学长们的测试
    loli的测试——搜索
    搜索-2
    单调队列
    乱搞题 (不知道怎么分类)
    对拍及数据生成
    搜索-1
    矩形重叠
    拼写单词
    java笔记
  • 原文地址:https://www.cnblogs.com/yizhenfeng168/p/6916833.html
Copyright © 2020-2023  润新知