这是否意味着这OrderedDict
将变得多余?我能想到的唯一用途是保持与不保留普通字典插入顺序的旧版本 Python 的向后兼容性。
问问题
12831 次
1 回答
173
不,它在 Python 3.7 中不会变得多余,因为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 增加了reversed()
对常规 Python 迭代的支持,见issue33462dict
于 2018-06-15T09:20:41.903 回答