Лучший способ сортировки словаря по группам с использованием Python - PullRequest
9 голосов
/ 12 января 2012

У меня есть список словарей, например:

[{'person':'guybrush','job':'pirate'},{'person':'leChuck','job':'pirate'}, {'person':'elaine','job':'governor'}]

Я хочу отобразить людей, сгруппированных по их работе. Итак, во внешнем интерфейсе мы можем выбрать работу и увидеть всех людей, у которых есть выбранная работа.

Я выполнил такую ​​функцию перед использованием запутанных вложенных циклов и списков.

Как вы думаете, какой самый эффективный способ получить этот результат?

pirate = ['guybrush','leChuck']
governor = ['elaine']

1 Ответ

21 голосов
/ 12 января 2012

Это просто, используя defaultdict:

persons_by_jobs = defaultdict(list)
for person in persons:
    persons_by_jobs[person['job']].append(person['person'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...