Python: сортировка списков словарей, которые содержат списки других словарей по длине члена во вложенном словаре - PullRequest
0 голосов
/ 09 апреля 2020

Пример моей структуры данных выглядит следующим образом:

основной список :

[{..}, {..}, ..] # list of dictionaries

основной список store dicts элемента списка :

{
'queues': [{..}, {..}, ..],  # list of more dictionaries
}

dict элемента внутреннего списка :

{
'member': ["string", "string", ..] # list of strings
}

Моя цель сортировать main list на основе длины списка участников во внутренних словарях. Какой эффективный и pythoni c способ выполнить sh это?

1 Ответ

1 голос
/ 09 апреля 2020

Вы можете использовать sorted или list.sort с соответствующей функцией клавиш. Если вы сортируете по общей длине всех member списков:

main_list.sort(key=lambda d: sum(len(x['member']) for x in d['queues']))

или если вы хотите всегда учитывать только первый релевантный:

main_list.sort(key=lambda d: len(d['queues'][0]['member']))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...