OrderedDict
并不会变得多余,因为它不仅是保留插入顺序的dict
,而且还提供了一个与顺序相关的方法OrderedDict.move_to_end()
,并支持reversed()
迭代*。OrderedDict
和其他对象进行相等比较时区分顺序,在Python 3.7中dict
仍然不支持这一特性,例如:>>> OrderedDict([(1,1), (2,2)]) == OrderedDict([(2,2), (1,1)])
False
>>> dict([(1,1), (2,2)]) == dict([(2,2), (1,1)])
True
* Python 3.8增加了对常规Python dict
的reversed()
迭代的支持,请参见issue33462。
OrderedDict
和常规dict
之间 - 我不认为这会很快改变。 - Chris_Rands