为了账号安全,请及时绑定邮箱和手机立即绑定

是否在Python 3.6+中订购了字典?

是否在Python 3.6+中订购了字典?

撒科打诨 2019-05-27 14:37:02
是否在Python 3.6+中订购了字典?字典在Python 3.6中排序(至少在CPython实现下),与之前的版本不同。这似乎是一个重大变化,但它只是文档中的一小段。它被描述为CPython实现细节而不是语言特性,但也暗示这可能成为未来的标准。在保留元素顺序的同时,新字典实现如何比旧字典实现更好?以下是文档中的文字:dict()现在使用PyPy开创的“紧凑”表示。与Python 3.5相比,新dict()的内存使用量减少了20%到25%。PEP 468(在函数中保留** kwargs的顺序。)由此实现。这个新实现的顺序保留方面被认为是一个实现细节,不应该依赖(这可能会在未来发生变化,但是在更改语言规范之前,希望在几种版本的语言中使用这个新的dict实现为所有当前和未来的Python实现强制命令保留语义;这也有助于保持与随机迭代顺序仍然有效的语言的旧版本的向后兼容性,例如Python 3.5)。(供稿人:INADA Naoki in问题27350。最初由Raymond Hettinger建议的想法。)Python 3.7 保证了dict保留插入顺序
查看完整描述

3 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

以下是回答原始的第一个问题:

我应该使用dictOrderedDict在Python 3.6?

我认为文档中的这句话实际上足以回答你的问题

这个新实现的顺序保留方面被认为是一个实现细节,不应该依赖它

dict并不明确意味着是一个有序的集合,所以如果你想保持一致,而不是依赖于新实现的副作用,你应该坚持OrderedDict

让您的代码面向未来:)

有关于辩论在这里

编辑:Python 3.7将保持这个功能 看到


查看完整回答
反对 回复 2019-05-27
  • 3 回答
  • 0 关注
  • 524 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信