只想保留最近几条状态时,可以使用带maxlen的deque。但容量限制意味着旧内容可能被自动移出,不能把它当成永不丢记录的日志存储。

先决定容量满时的语义
从右侧追加新记录时,如果已经达到容量,最左侧的旧记录会被移出。示例容量为三,追加第四条后只保留B、C、D。若业务要求完整审计记录,应选择持久化方案,而不是仅靠这个容器。
两端操作与随机访问不同
deque适合两端添加和移除等场景,不代表所有列表操作都更高效。选择容器时先看访问模式,避免仅因为它名字里有队列就用来替代所有数据结构。
用明确样例验证淘汰顺序
测试时检查保留的是最新还是最旧,是否有人从另一端写入。多个步骤组成的业务操作也不能凭容器本身就推断完全具备并发安全性。本文只演示单线程的有界记录。
可以运行的练习
from collections import deque
recent = deque(maxlen=3)
for item in ["A", "B", "C", "D"]:
recent.append(item)
assert list(recent) == ["B", "C", "D"]
assert recent.popleft() == "B"
print(list(recent))
示例已在本地隔离环境运行检查。使用固定输入,不访问外部接口,也不读取真实业务文件。
资料与继续学习
Python:collections.deque。资料查阅日期:2026年10月2日。步骤与练习由本站整理。
资料查阅与编辑日期:2026年10月2日。作者:玖柒。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END






