保留最后几个元素。
deque(maxlen=N)
会新建一个固定大小的队列。
当新元素加入已满的队列,最老的元素会被移除。
from collections import deque q = deque(maxlen=3) q.append(1) q.append(2) q.append(3) print(q) q.append(4) print(q) q.append(5) print(q)
输出:
deque([1, 2, 3], maxlen=3) deque([2, 3, 4], maxlen=3) deque([3, 4, 5], maxlen=3)
列表也可以实现这个操作。但队列更快。
在队列两端插入、删除元素时间复杂度是O(1)
,在列表开头插入、删除元素时间复杂度是O(N)
。
q.appendleft(6) print(q) q.pop() print(q) q.popleft() print(q)
输出:
deque([6, 3, 4], maxlen=3) deque([6, 3], maxlen=3) deque([3], maxlen=3)