栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python OrderedDict不保持元素顺序

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python OrderedDict不保持元素顺序

您的问题是,您正在构造一个

dict
将初始数据提供给的
OrderedDict
-这
dict
不会
存储任何订单,因此订单在到达之前就丢失了
OrderedDict

解决方案是从有序数据类型构建-最简单的

list
tuple
的:

>>> from collections import OrderedDict>>> od = OrderedDict([((0, 0), [2]), ((0, 1), [1, 9]), ((0, 2), [1, 5, 9])])>>> odOrderedDict([((0, 0), [2]), ((0, 1), [1, 9]), ((0, 2), [1, 5, 9])])

值得注意的是,这就是为什么

OrderedDict
使用它的字符串表示形式的语法的原因-
字符串表示形式应尽可能使用有效的Python代码来重现对象,这就是为什么输出使用元组列表而不是dict的原因。

编辑:从Python
3.6开始,

kwargs
是ordered
,因此,如果您使用的是最新的Python版本,则可以改用关键字参数。

从3.7开始,对于

dict
s也是如此(在3.6中的CPython中也是如此,但是语言规范未指定它,因此
OrderedDict
仍然需要使用来实现兼容性)。这意味着,如果您可以假设一个3.7+的环境,则通常可以
OrderedDict
完全放弃,或者
dict
如果需要特定功能(例如:为了平等而定),可以从常规构造一个。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/633654.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号