本系列來自python cookbook
問題
有時候唇跨,我們只需要保留最新的幾個元素衬衬。比如,最新的二十件新鮮事滋尉;再比如玉控,五個最近瀏覽的網(wǎng)站狮惜。所以我們需要一個獨特的數(shù)據(jù)結(jié)構(gòu),它可以不斷容納新的元素开泽,而當(dāng)元素量達到容量限制后,先進入容器的元素將依次被丟棄穆律。
class Container:
def __int__(self, capacity):
self.capacity = capacity
self.items = []
def push(self, item):
if len(self.items) == self.capacity:
del self.items[0]
self.items.append(item)
隊列
沒錯,這就是隊列峦耘。事實上,我們可以用collections.deque來解決這個問題贡歧。
from collections import deque
q = deque(maxlen=5)
for i in range(20):
q.append(i)
print q # deque([15, 16, 17, 18, 19], maxlen=5)