是否保证python字典中的keys()和values()的顺序相同?[重复]


问题内容

这个问题已经在这里有了答案

Python字典:keys()和values()总是顺序相同吗? (8个答案)

7年前关闭。

本机内置的python dict是否保证以相同的方式对keys()values()列表进行排序?

d = {'A':1, 'B':2, 'C':3, 'D':4 } # or any other content
otherd = dict(zip(d.keys(), d.values()))

我一直有d == otherd吗?

不管是对还是错,我对这个问题上的任何参考指针都感兴趣。

PS:我了解上述属性并非对每个行为像字典的对象都是正确的,我只是想知道内置的字典。当我进行测试时,看起来好像是真的,这也就不足为奇了,因为具有相同的顺序keys()并且values()可能是最简单的实现。但是我想知道是否明确定义了此行为。


问题答案:

键和值以任意顺序列出,该顺序是非随机的,在Python实现中会有所不同,并且取决于字典的插入和删除历史。如果items()keys()values()iteritems()iterkeys(),和itervalues()被称为中间没有修改的字典,列表会直接对应。

的文档中dict