本文为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类可以在任何只需要一个简单队列的数据结构场合使用。如果不设置最大队列大小,就会得到一个无限大小的队列,可以在该队列的两端执行添加和弹出元素操作。