通过比较两个字典的值来创建第三个字典
我有两本像下面这样的字典
dic1 = {'1': 'india','2': 'america','3': 'china'}
dic2 = {'A1':'india','A2':'india' ,'A3':'america','A4':'india' ,'A5': 'china','A6': 'india','A7': 'america' }
我想通过比较值来创建新字典并将值存储在第三个字典中,如下所示
dic3 = {'1': [A1,A2,A4,A6], '2': [A3,A7] ,'3': [A5] }
我尝试使用以下代码,但没有给出预期的结果
dict3={}
for i in dic1:
for j in dic2:
if i == dic2[j]:
dict3[j]=dic1[i]
print(dict3)
回答
一种使用方式collections.defaultdict:
from collections import defaultdict
tmp = {v: k for k, v in dic1.items()}
dic3 = defaultdict(list)
for k, v in dic2.items():
dic3[tmp[v]].append(k)
dic3 = dict(dic3)
print(dic3)
输出:
{'1': ['A1', 'A2', 'A4', 'A6'], '2': ['A3', 'A7'], '3': ['A5']}