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 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

以上是 Python-如何按键对字典排序? 的全部内容, 来源链接: utcz.com/qa/422118.html

回到顶部