来自Python 3.7 变更日志:
插入顺序保存性质dict物体已宣布成为 Python 语言规范的正式部分。
这是否意味着OrderedDict会变得多余吗?我能想到的唯一用途是保持与旧版本 Python 的向后兼容性,旧版本的 Python 不保留普通字典的插入顺序。
不,它在 Python 3.7 中不会变得多余,因为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
两个相关问题here and here.
* 支持reversed()
常规 Python 的迭代dict
为 Python 3.8 添加,请参阅问题33462
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)