首页 > 解决方案 > 对值也是字典的字典进行排序?

问题描述

如果字典是这样的:

d = {"a": 1, "b": 2, "c": 3}

我想按值排序我使用sorted如下函数:

sorted_d = sorted(d.items(), key=lambda x: x[1])

如果我想按“数字”对其进行排序,我怎么能对以下字典做同样的事情:

d = {
    "a": {"description": "first letter", "number": 1},
    "b": {"description": "second letter", "number": 2},
    "c": {"description": "third letter", "number": 3}
}

标签: python

解决方案


x[1]["number"]在你的 lambda 中使用

n [40]: d
Out[40]:
{'b': {'description': 'second letter', 'number': 2},
 'a': {'description': 'first letter', 'number': 1},
 'c': {'description': 'third letter', 'number': 3}}

In [41]: sorted(d.items(), key=lambda x:x[1]["number"])
Out[41]:
[('a', {'description': 'first letter', 'number': 1}),
 ('b', {'description': 'second letter', 'number': 2}),
 ('c', {'description': 'third letter', 'number': 3})]


推荐阅读