Python命令dict(zip())改变了a的顺序

时间:2015-03-23 17:53:18

标签: python python-2.7

我有两个列表,我将其映射到字典中。

这两个清单是 -

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}

为什么这会按键的顺序改变?

2 个答案:

答案 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}