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
比较
- Python 内置的字典主要用于查询(但在 3.7 版本之后也附带了维持插入顺序的功能),如果要频繁使用排序的功能,
OrderedDict
性能更好。 OrderedDict
有一些排序的接口,方便实现 LRU 缓存等。OrderedDict
在相等比较时会额外比较键的顺序。
A regular can emulate the order sensitive equality test with :
p == q and all(k1 == k2 for k1, k2 in zip(p, q))
.
OrderedDict
的popitem
有不同的签名,OrderedDict
还有一个move_to_end
方法。