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

kri*_*iss 18 python dictionary

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

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

我一直都有d == otherd吗?

无论是真还是假,我都对这个主题上的任何引用指针感兴趣.

PS:我理解上面的属性不适用于每个行为都像字典的对象,我只是想知道内置的字典.当我测试它看起来好像是真的,并且它并不奇怪,因为具有相同的顺序,keys()并且values()可能是最简单的实现.但我想知道这种行为是否明确定义.

Dom*_*ger 31

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

文档中dict.