我有两个列表,我将其映射到字典中。
这两个清单是 -
a = ['a','b','c','d']
和b = [1,2,3,4]
。
当我运行命令
时>>> d = dict(zip(a,b))
>>> d
我得到了
{'a': 1, 'c': 3, 'b': 2, 'd': 4}
而预期值为{'a': 1, 'b': 2, 'c': 3, 'd': 4}
为什么这会按键的顺序改变?
答案 0 :(得分:3)
没有固有的"显而易见的"在dict
的键中排序。不可否认,the docs仅为CPython拼写,但也请注意
如果items(),keys(),values(),iteritems(),iterkeys()和 调用itervalues()而不对其进行干预修改 字典,列表将直接对应。
通过省略说,否则他们可能会改变。
(请注意,有一个订单,但它涉及到密钥的哈希值,所以它不像" a b"之前那么容易,特别是几年之后,每次调用可执行文件时都有可能发生变化。)
答案 1 :(得分:2)
字典中没有订单。
{'a': 1, 'b': 2, 'c': 3, 'd': 4} == {'a': 1, 'c': 3, 'b': 2, 'd': 4}