71. 像Linux的历史命令列表使用什么样数据结构来保存

python有deque类,有最大的记录数的成员变量,超出最大记录数后,将最早的入队数据删除。 这样可以实现最近历史列表等常见的功能。

deque函数原型为class collections.deque([iterable[, maxlen]])

deque返回一个从左到右初始化的新deque对象(使用append())和来自iterable的数据。 如果未指定迭代参数,则新的双端队列为空。

Deques是堆栈和队列的泛化(是“双端队列”的缩写double-end queue)。 Deques支持线程安全, 高效的内存追加,并从双侧出现,并且在任一方向都具有大致相同的O(1)性能。

虽然列表对象支持类似的操作,但它们针对快速固定长度操作进行了优化,并为pop(0)和 insert(0, v)操作产生O(n)内存移动成本,这些操作改变了底层数据表示的大小和位置。

如果没有指定maxlen或者是None,deques可能会增长到任意长度。否则,deque被限制到 指定的最大长度。一旦有限长度的deque已满,当添加新项目时,相应数量的项目将从对 端丢弃。有界长度deques可用于跟踪只有最近的活动感兴趣的交易和其他数据池。