Jam*_*iew 55 python dictionary python-3.x python-3.7 ordereddict
这是否意味着OrderedDict
会变得多余?我能想到的唯一用途是保持与旧版本Python的向后兼容性,这些版本不保留普通字典的插入顺序.
Chr*_*nds 81
不,它不会变得多余,因为OrderedDict
它不仅仅是一个dict
保留插入顺序,它还提供依赖于顺序的方法,OrderedDict.move_to_end()
并支持reversed()
迭代*.此外,相等比较OrderedDict
是对顺序敏感的,dict
在Python 3.7中仍然不是这样,例如:
>>> OrderedDict([(1,1), (2,2)]) == OrderedDict([(2,2), (1,1)])
False
>>> dict([(1,1), (2,2)]) == dict([(2,2), (1,1)])
True
Run Code Online (Sandbox Code Playgroud)
*为Python 3.8添加了reversed()
对常规Python迭代的支持dict
,请参阅issue33462