Сортировка словаря, где значения тоже словари? - PullRequest
0 голосов
/ 03 августа 2020

Если словарь такой:

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

1 Ответ

2 голосов
/ 03 августа 2020

Используйте x[1]["number"] в лямбде

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})]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...