使用Python将字典分组的最佳方法

9 投票
1 回答
8811 浏览
提问于 2025-04-17 10:05

我有一个字典的列表,比如:

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

我想把这些人按照他们的职业分组显示。所以在前端,我们可以选择一个职业,然后看到所有从事这个职业的人。

我之前做过这样的功能,但用的是让人头疼的嵌套循环和列表。

你觉得有什么更有效的方法来实现这个结果吗?

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

1 个回答

21

这很简单,只需要用到一个叫做 defaultdict 的东西:

persons_by_jobs = defaultdict(list)
for person in persons:
    persons_by_jobs[person['job']].append(person['person'])

撰写回答