data1 = {'Height': {'Ajay': 145.830651784016,
'Bist': 145.91779226416696,
'Kay': 146.16402145150246}
}
data2 = {'Height': {'Kim': 155.830651784016,
'DDD': 155.91779226416696,
'Arambh': 156.16402145150246}
}
data3 = {'Height': {'Dong': 165.830651784016,
'Ding': 165.91779226416696,
'Dumba': 166.16402145150246}
}
以上是我想合并成一本的三本字典。 预期产出如下:
den_w = {'Height': {'Ajay': 145.830651784016,
'Bist': 145.91779226416696,
'Kay': 146.16402145150246,
'Kim': 155.830651784016,
'DDD': 155.91779226416696,
'Arambh': 156.16402145150246,
'Dong': 165.830651784016,
'Ding': 165.91779226416696,
'Dumba': 166.16402145150246}
}
下面是我的尝试。没有达到预期产出:
尝试1失败:
den_w = {**data1, **data2, **data3}
尝试2失败:
den_w = {k: [data1.get(k, {}), data2.get(k, {}), data3.get(k, {})] for k in data1.keys() | data2.keys() | data3.keys()}
尝试3失败:
dicts = data1,data2,data3
尝试4失败:
dicts = {}
dicts.update(data1)
dicts.update(data2)
dicts.update(data3)
有没有办法达到预期的产量
试试这个:
输出:
找到所有dict之间的公共键,然后合并它们
输出:
编辑:仅使用链图的方法
这里有一个单行线来做这个。它对字典中每个唯一键的子指令进行分组和组合
在演示案例上进行测试-
下面是一种使用
collections.defaultdict
和collections.ChainMap
的pythonic方法。我已经解释了下面的步骤defaultdict(dict)
存储一个或多个dictdict(ChainMap(*L)).keys()
获取列表中所有字典中存在的唯一键。在这种情况下,它只是height
key
和每个元素,键的字典将用该key
的值更新李>dict
李>相关问题 更多 >
编程相关推荐