关于排序:如何按值对python字典排序?

How to sort a Python dictionary by value?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
In Python how do I sort a list of dictionaries by values of the dictionary?
Sorting Python dictionary based on nested dictionary values

在词典的形式有:为上述下面

1
a_dict = { 'e': (1, 100), 'a': (2, 3) }

我在这两个城市unable品种在第二个元素的元组。词典的产物;将appear为下面的:

1
a_dict = { 'a': (2, 3), 'e': (1, 100) }


词典不能这样排序,但可以对其内容进行排序:

1
2
sorted(a_dict.items(), key=lambda (k, (v1, v2)): v2)
sorted(a_dict.items(), key=lambda item: item[1][1])    # Python 3

您可以将结果放入collections.OrderedDict(从2.7开始):

1
2
OrderedDict(sorted(a_dict.items(), key=lambda (k, (v1, v2)): v2))
OrderedDict(sorted(a_dict.items(), key=lambda item: item[1][1])    # Python 3


在您的示例中,您使用的是字典列表。按键对dict排序:

1
2
3
4
5
6
7
8
9
10
11
12
mydict = {'carl':40,
          'alan':2,
          'bob':1,
          'danny':3}

for key in sorted(mydict.iterkeys()):
    print"%s: %s" % (key, mydict[key])

alan: 2
bob: 1
carl: 40
danny: 3

如果要按值对dict排序,请参见按值对python字典排序