通过比较两个字典的值来创建第三个字典

我有两本像下面这样的字典

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']}


以上是通过比较两个字典的值来创建第三个字典的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>