本文為Python CookBook一書的閱讀筆記。
Python中如何記錄當前的瀏覽記錄呢?實現方法當然有很多種。比如可以使用Python列表list數據結構,只是每次在列表首尾操作數據會比較麻煩。下面有一種更方便的方法,使用collections模塊中的deque數據結構。
deque使用介紹
使用deque(maxlen=N)構造函數會新建一個固定大小的隊列,當新的元素加入并且這個隊列已滿時,最早添加的元素會自動移除。代碼示例如下:
from collections import deque q = deque(maxlen=3) q.append(1) q.extend([x for x in range(2, 10)]) # 結果為:deque([7, 8, 9], maxlen=3) print(q) q.appendleft(10) # 結果為:deque([10, 7, 8], maxlen=3) print(q) # 結果為:10 print(q.popleft())
盡管也可以在列表上實現增加、刪除等操作。但是使用deque隊列方案會更加優雅并且性能更好。deque類可以在任何只需要一個簡單隊列的數據結構場合使用。如果不設置最大隊列大小,就會得到一個無限大小的隊列,可以在該隊列的兩端執行添加和彈出元素操作。