【发布时间】:2016-04-05 13:44:18
【问题描述】:
例如:
my_dict = OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
如果获取密钥的操作,即my_dict.keys() 或my_dict.iterkeys() 完成,是否保证返回:
['apple','banana','orange','pear']?
这在文档中没有明确提及。
【问题讨论】:
-
是的。 “OrderedDict - 添加了记住订单条目的 dict 子类”
-
@AndreyT 我知道这些项目,或者迭代,我的问题特别是关于 .keys() 或 .values() 方法
-
@DhruvPathak:是什么让你认为他们不会?键值对是条目。遍历键、值或项目都必须使用相同的顺序。如果情况并非如此,那将是非常令人惊讶,并且必须明确记录为例外。文档中没有这样的例外。
-
@DhruvPathak documentation 暗示了这一点:“OrderedDict 对象之间的相等性测试是顺序敏感的,并且实现为 list(od1.items())==list(od2 .items())。OrderedDict 对象和其他 Mapping 对象之间的相等性测试与常规字典一样对顺序不敏感。这允许在使用常规字典的任何地方替换 OrderedDict 对象。"
-
@DhruvPathak:该异常是一个错误;在文档或代码中。
标签: python