Сортировать список в dict, который имеет ключ в виде списка dicts - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь отсортировать список по ключам dict, который имеет ключи как списки с другими диктами.

big_list = [{"Key1": 1, "Key2" :2, "Key3": [{"sortable_key": value1, value2, ..}]}]

Цель состоит в том, чтобы отсортировать big_list по sortable_key. Я пытаюсь выполнить sh сортировку с помощью лямбды:

big_list = list(sorted(big_list, key=lambda x: x["Key3"]["sortable_key"]))

Но это не работает (не сортируя список, я предполагаю, что он будет сортировать его в определенном порядке, например по алфавиту). Я пытаюсь получить доступ к sortable_key неправильным способом или это невозможно сделать с помощью лямбды?

Спасибо!

Полный пример big_list:

big_list = [{'number': '7',
  'code': '1106',
  'name': 'John',
  'det': [{'subcode': 'AA11','subname': 'Alan','age': 11},
{'subcode': 'CC11','subname': 'Hugo','age': 22},
{'subcode': 'BB11','subname': 'Walt','age': 18}]}]

В этом случае мне нужно отсортировать список по 'субкоду'.

1 Ответ

0 голосов
/ 14 января 2020

Вы забыли [0], поскольку x["Key3"] - это список:

big_list = list(sorted(big_list, key=lambda x: x["Key3"][0]["sortable_key"]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...