使用Python将字典分组的最佳方法
我有一个字典的列表,比如:
[{'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'])