Python dict 和 OrderedDict

有序性

这里说的有序指的是维持键的插入顺序,并不是指使用二叉树维持键的大小关系。

As of Python version 3.7, dictionaries are ordered. In Python 3.6 and earlier, dictionaries are unordered.

OrderedDict 一直是有序的。

https://devdocs.io/python~3.11/library/collections#collections.OrderedDict

比较

  1. Python 内置的字典主要用于查询(但在 3.7 版本之后也附带了维持插入顺序的功能),如果要频繁使用排序的功能,OrderedDict 性能更好。
  2. OrderedDict 有一些排序的接口,方便实现 LRU 缓存等。
  3. OrderedDict 在相等比较时会额外比较键的顺序。

A regular can emulate the order sensitive equality test with : p == q and all(k1 == k2 for k1, k2 in zip(p, q)).

  1. OrderedDictpopitem 有不同的签名,OrderedDict 还有一个 move_to_end 方法。