Skip to main content
 首页 » 程序教程

Python保留队列最后的N个元素

2016年11月03日19931

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

评论列表1条评论
电话办理
电话办理回复 看不懂耶,好难
发表评论