什么是从{2:3, 1:89, 4:5, 3:0}到的好方法{1:89, 2:3, 3:0, 4:5}? 我检查了一些帖子,但它们都使用返回元组的“排序”运算符。
{2:3, 1:89, 4:5, 3:0}
{1:89, 2:3, 3:0, 4:5}
标准 Python 字典是无序的(直到 Python 3.7)。即使您对 (key,value) 对进行了排序,您也无法以dict保留顺序的方式存储它们。
dict
最简单的方法是使用OrderedDict,它会记住插入元素的顺序:
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打印出来的方式;它会按预期工作:
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 用户,需要使用以下.items()代替.iteritems():
.items()
.iteritems()
In [13]: for k, v in od.items(): print(k, v) ....: 1 89 2 3 3 0 4 5