字典从Python 3.6开始按插入顺序排列。它被描述为CPython实现细节而不是语言功能。留档声明:
dict()
现在使用“紧凑”的表示由PyPy首创。与Python 3.5相比,新字典()的内存使用量减少了20%到25%。PEP 468(保留函数中**kwargs的顺序。)就是这样实现的。这个新实现的顺序保持方面被认为是一个实现细节,不应该被依赖(这可能会在未来发生变化,但在更改语言规范以强制要求所有当前和未来的Python实现保持顺序语义学之前,希望在语言的几个版本中拥有这个新的字典实现;这也有助于保持与旧版本语言的向后兼容,其中随机迭代顺序仍然有效,例如Python 3.5)。(由INADA Naoki在问题27350中贡献。想法最初由Raymond Hettinger提出。)
在保留元素顺序的同时,新的字典实现如何比旧的更好地执行?
2017年12月更新:dict
保留插入顺序为保证 for Python 3.7