Python命令dict(zip())更改

Python命令dict(zip())更改,python,python-2.7,Python,Python 2.7,我有两个列表,我正在映射到字典中 {'a': 1, 'b': 2, 'c': 3, 'd': 4} == {'a': 1, 'c': 3, 'b': 2, 'd': 4} 这两份名单是— 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':

我有两个列表,我正在映射到字典中

{'a': 1, 'b': 2, 'c': 3, 'd': 4} == {'a': 1, 'c': 3, 'b': 2, 'd': 4}
这两份名单是—

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}

为什么按键顺序会发生这种变化?

dict的按键没有固有的“明显”顺序。诚然,只需要为CPython详细说明,还要注意

如果项()、键()、值()、iteritems()、iterkeys()和 调用itervalues()时不会对 字典中,列表将直接对应

这意味着,如果不这样做,他们可能会改变

(请注意,有一个顺序,但它涉及到键的散列,因此它不像“b之前的a”那么简单,特别是,几年前,它可能会随着可执行文件的每次新调用而改变。)

dict的键中没有固有的“明显”顺序。诚然,只需要为CPython详细说明,还要注意

如果项()、键()、值()、iteritems()、iterkeys()和 调用itervalues()时不会对 字典中,列表将直接对应

这意味着,如果不这样做,他们可能会改变


(请注意,有一个顺序,但它涉及到键的散列,因此它不像“b之前的a”那么简单,特别是几年前,它可能会随着可执行文件的每次新调用而改变。)

字典中没有顺序

{'a': 1, 'b': 2, 'c': 3, 'd': 4} == {'a': 1, 'c': 3, 'b': 2, 'd': 4}

字典里没有顺序

{'a': 1, 'b': 2, 'c': 3, 'd': 4} == {'a': 1, 'c': 3, 'b': 2, 'd': 4}
因为字典是无序的数据结构。如果顺序很重要,请使用集合.OrderedDict()。因为字典是无序的数据结构。如果订单很重要,请使用集合.OrderedDict()。