问题描述
在迭代操作或者其他操作的时候,怎样只保留最后加入的固定个数的元素?
解决方案
使用 collections.deque(maxlen=N)
建立固定大小的队列,当新的元素加入并且这个队列已满的时候, 最老的元素会自动被移除掉。
如:
1 | def test_deque_maxlen(): |
举个例子:
假设现在有一个文件,我们遍历文件的每一行,但是保留最后读取的 5 行内容,应该如何做呢?
示例代码:
1 | import os |
我们在写查询元素的代码时,通常会使用包含 yield
表达式的生成器函数,这样可以将搜索过程代码和使用搜索结果代码解耦。