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会非常节省资源。
网友评论