Python CookBook 笔记 | deque

2020-03-12  本文已影响0人  大师的学徒
from collections import deque

q = deque(maxlen = 3)
q.append(1)
q.append(2)
q.append(0)

deque(maxlen = n) 创建一个固定长度的队列,当有新的数据加入队列会自动移除最早的数据

>>> q
deque([1, 2, 0], maxlen=3)

添加元素到队列尾端

>>> q.append(2)
>>> q
deque([2, 0, 2], maxlen=3)

添加元素到队首

>>> q.appendleft(5)
>>> q
deque([5, 2, 0], maxlen=3)

=======================================================
deque可以协助在简单队列的两端执行添加和弹出任务,如:

from collections import deque

q = deque()
q.append(2)
q.append(5)
q.append(4)

一些在列表里没有的命令,如 popleft() 和 appendleft()

>>> q
deque([2, 5, 4])
>>> q.appendleft(333)
>>> q
deque([333, 2, 5, 4])
>>> q.pop()
4
>>> q
deque([333, 2, 5])
>>> q.popleft()
333

PS:用deque从两端添加或弹出的复杂度是O(1), 但是在list中插入或移除元素的复杂度为O(N),所以转化为deque会非常节省资源。

上一篇 下一篇

猜你喜欢

热点阅读