Python-如何按键对字典排序?
这将是一个很好的方式,从去{2:3, 1:89, 4:5, 3:0}
到{1:89, 2:3, 3:0, 4:5}?
我检查了一些帖子,但它们都使用了返回元组的”sorted” 运算符。
回答:
标准Python字典是无序的。即使你对(key,value)对进行了排序,也无法以dict
保留顺序的方式存储它们。
最简单的方法是使用OrderedDict,它可以记住元素插入的顺序:
In [1]: import collectionsIn [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
以上是 Python-如何按键对字典排序? 的全部内容, 来源链接: utcz.com/qa/422118.html