先前关于按键对字典排序的堆栈溢出问题对python 3.6+提出了以下建议:
d={2:3,1:89,4:5,3:0}
b=dict(sorted(d.items()))
print(b)
与预期的一样,输出如下:
{1: 89, 2: 3, 3: 0, 4: 5}
但是当我输入以下内容
a={'1':1,'x':4,'z':-40023,'c':234}
c=dict(sorted(d.items()))
print(c)
这是产生的输出:
{'1': 1, 'c': 234, 'x': 4, 'z': -40023
}
我的问题如下:
答案 0 :(得分:2)
第二个示例已正确排序。请参见ASCII table,以验证数字是否位于字母之前。
Python 3.6(特别是CPython实现)changed the way dictionaries已实现。此更改的副作用是字典保留了元素插入顺序,这可能非常方便。这只是3.6中的一个副作用,但是BDFL decreed要求从3.7版开始,此更改将成为该语言的功能。
b
确实是一个新的dict
,并且根据上面的第2项,保留了插入顺序。在这种情况下,将按排序顺序插入项目。