Python實用技法第2篇:使用deque保留最新的N個元素

上一篇文章: Python實用技法第1篇:可迭代對象分解爲單獨的變量
下一篇文章: Python實用技法第3篇:找到最大或最小的N個元素

一、需求🙀

作一個有限個數的歷史記錄。

二、解決方案😸

deque(maxlen=N),建立一個固定長度的隊列,當有新記錄加入而且隊列已滿時會自動移除最老的那條記錄。

代碼:segmentfault

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)

結果:app

deque([1, 2, 3], maxlen=3)
deque([2, 3, 4], maxlen=3)
deque([3, 4, 5], maxlen=3)

若是不指定隊列的大小,也就獲得了一個無界限的隊列,能夠在兩端執行添加和彈出操做,code

代碼:對象

from collections import deque

q=deque()
q.append(1)
q.append(2)
q.append(3)
q.append(4)
print(q)
q.appendleft(5)
print(q)
print(q.pop())
print(q)
print(q.popleft())
print(q)

結果:隊列

deque([1, 2, 3, 4])
deque([5, 1, 2, 3, 4])
4
deque([5, 1, 2, 3])
5
deque([1, 2, 3])
上一篇文章: Python實用技法第1篇:可迭代對象分解爲單獨的變量
下一篇文章: Python實用技法第3篇:找到最大或最小的N個元素
相關文章
相關標籤/搜索