我该如何按键对字典进行排序?
我该如何按键对字典进行排序?
如何通过键对字典进行排序?
示例输入:
{2:3, 1:89, 4:5, 3:0}
期望输出:
{1:89, 2:3, 3:0, 4:5}
admin 更改状态以发布 2023年5月21日
注意: 对于Python 3.7以上版本,请参见这个答案
标准的Python字典是无序的(在Python 3.7之前)。即使你对(key,value)进行排序,你也不能将它们以一种保持顺序的方式存储到dict
中。
最简单的方法是使用OrderedDict
,它会记住元素插入的顺序:
In [1]: import collections In [2]: d = {2:3, 1:89, 4:5, 3:0} In [3]: od = collections.OrderedDict(sorted(d.items())) In [4]: od Out[4]: OrderedDict([(1, 89), (2, 3), (3, 0), (4, 5)])
不要在意od
的打印方式;它会按照预期工作:
In [11]: od[1] Out[11]: 89 In [12]: od[3] Out[12]: 0 In [13]: for k, v in od.iteritems(): print k, v ....: 1 89 2 3 3 0 4 5
Python 3
对于Python 3用户,需要使用.items()
而不是.iteritems()
:
In [13]: for k, v in od.items(): print(k, v) ....: 1 89 2 3 3 0 4 5