考虑具有多个重复值的字典。如何按值对字典进行分组?例如:
mydict =
{
'germany': 'europe',
'france': 'europe',
'canada': 'north america',
'latvia': 'europe'
'usa': 'north america',
'china': 'asia'
}
按值分组到列表中。
groupdDict =
{
'europe': ['germany','france','latvia'],
'north america': ['canada','usa'],
'asia': ['china']
}
答案 0 :(得分:2)
使用collections.defaultdict
<强>演示:强>
mydict ={
'germany': 'europe',
'france': 'europe',
'canada': 'north america',
'latvia': 'europe',
'usa': 'north america',
'china': 'asia'
}
import collections
d = collections.defaultdict(list)
for k,v in mydict.items():
d[v].append(k)
print(d)
或使用简单的迭代
<强>演示:强>
d = {}
for k,v in mydict.items():
if v not in d:
d[v] = []
d[v].append(k)
print(d)
<强>输出:强>
{'north america': ['canada', 'usa'], 'europe': ['france', 'latvia', 'germany'], 'asia': ['china']}