本机内置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()
具有相同的顺序可能是最简单的实现。但我想知道这种行为是否明确定义了。
答案 0 :(得分:31)
键和值以任意顺序列出,这是非随机的,在Python实现中各不相同,并且取决于字典的插入和删除历史。如果
items()
,keys()
,values()
,iteritems()
,iterkeys()
和itervalues()
被调用而没有对字典进行干预,则列表将会直接对应。
答案 1 :(得分:4)