我正在寻找一种简短的pythonic方式来按键合并两个(三个,n个)词典。关于合并或附加词典有几个问题,但在这里我正在寻找在其键相等时将值附加到另一个值。我的所有词典都有完全相同的键集。
dic0 = {'Amsterdam': 0, 'Berlin': 5, 'London': 7}
dic1 = {'Amsterdam': 1, 'Berlin': 7, 'London': 8}
期望的输出:
combined_dict = {'Amsterdam': {'dic0': 0, 'dic1':1}, 'Berlin': {'dic0': 5, 'dic1':7}, 'London': {'dic0': 7, 'dic1':8}}
我可以用
实现这一目标combined_dict = {}
for key in dic0.keys():
combined_dict[key] = {}
combined_dict[key]['dic0'] = dic0[key]
combined_dict[key]['dic1'] = dic1[key]
但这似乎远非易于扩展。作为第一步,我甚至没有得到词典的名称。
答案 0 :(得分:1)
这适用于字典名称列表,例如dicts = ['dic0', 'dic1']
:
combo = {k: {i: eval(i)[k] for i in dicts} for k in eval(dicts[0]).keys()}