python cookbook第一章第3节
1.3 保留最后 N 个元素
问题:在迭代操作或者其他操作的时候,怎样只保留最后有限几个元素的历史记录?
解决方案: 保留有限历史记录正是
collections.deque大显身手的时候。比如,下面的代码在多行上面做简单的文本匹配, 并返回匹配所在行的最后N行:
from collections import deque
def search(lines, pattern, history=5):
previous_lines = deque(maxlen=history)
for line in lines:
if pattern in line:
yield line

在Python中,使用`collections.deque`可以高效地保留迭代操作的最后N个元素,例如在搜索文本匹配时返回匹配行及其前N行。deque因其固定大小和自动移除最旧元素的特性,成为实现这种功能的理想选择。在示例中,一个生成器函数用于搜索文件中的特定模式,并返回匹配行及其上下文。deque提供了在两端添加和删除元素的O(1)时间复杂度操作,优于列表的O(N)操作。
最低0.47元/天 解锁文章
882

被折叠的 条评论
为什么被折叠?



