如何按属性值对字典排序?

时间:2018-09-20 17:37:55

标签: python python-3.x

我有一个类似

的字典
{'A': {'frequency': 4}, 'B': {'frequency': 2}, 'C': {'frequency': 7}}

如何通过"frequency"属性对此进行排序?

2 个答案:

答案 0 :(得分:1)

sorted(a, key=lambda x: (a[x]['frequency']))

要根据评论的要求将其排序:

from collections import OrderedDict OrderedDict(sorted(a.items(), key=lambda x: x[1]['frequency']))

答案 1 :(得分:1)

字典在python中不排序。如果您需要订购字典。最好使用集合模块中的OrderedDict

In [24]: from collections import OrderedDict
    ...: d = {'A': {'frequency': 4}, 'B': {'frequency': 2}, 'C': {'frequency': 7}}
    ...:
    ...: ord_a = OrderedDict(sorted(ord_d.items(), key = lambda x: x[1]['frequency']))
    ...:
    ...:

In [25]:

In [25]: print(ord_a)
OrderedDict([('B', {'frequency': 2}), ('A', {'frequency': 4}), ('C', {'frequency': 7})])