python - 按键合并字典,并将字典名称作为子键

标签 python dictionary nested

我正在寻找一种简短且Python式的方法来按键合并两个(三个,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]

但这似乎远非那么容易扩展。作为第一步,我什至无法获得字典的名称。

最佳答案

这适用于字典名称列表,例如dicts = ['dic0', 'dic1']:

combo = {k: {i: eval(i)[k] for i in dicts} for k in eval(dicts[0]).keys()} 

关于python - 按键合并字典,并将字典名称作为子键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29868526/

相关文章:

python - Pandas : finding out wrong data

python - 在 Windows 上用 Python 进行文学编程的最佳方法是什么?

python - Jupyter笔记本无法在conda环境中加载已安装的包

python - 使用列表理解返回第一个找到的元素或 None

python - 不同列表中的同一类别

json - 使用汇总数据 reshape jq 数组

c# - 字典 - 使用类型作为键并将其限制为仅适用于某些类型

mysql - mysql中元素的总和

python - 嵌套字典中的多个键

php - Elasticsearch。嵌套查询嵌套