1.3 保留最后 N 个元素

    保留有限历史记录正是 大显身手的时候。比如,下面的代码在多行上面做简单的文本匹配,并返回匹配所在行的最后N行:

    我们在写查询元素的代码时,通常会使用包含 yield 表达式的生成器函数,也就是我们上面示例代码中的那样。这样可以将搜索过程代码和使用搜索结果代码解耦。如果你还不清楚什么是生成器,请参看 4.3 节。

    代码示例:

    尽管你也可以手动在一个列表上实现这一的操作(比如增加、删除等等)。但是这里的队列方案会更加优雅并且运行得更快些。

    代码示例:

    在队列两端插入或删除元素时间复杂度都是 ,区别于列表,在列表的开头插入或删除元素的时间复杂度为 O(N)