如何按相同键分组合并字典列表中的嵌套值?
解决方案
要实现将列表中所有字典的'a'键对应的嵌套字典合并,你可以通过以下步骤完成:
- 初始化一个空字典用于存储合并后的结果
- 遍历列表中的每个字典,提取
'a'对应的嵌套字典,并用update()方法将其键值对合并到空字典中 - 最后将合并好的字典放入列表,得到目标输出
代码示例
x = [{'a': {'b': 'c'}}, {'a': {'d': 'e'}}] merged_dict = {} for d in x: merged_dict.update(d['a']) result = [merged_dict] print(result) # 输出: [{'b': 'c', 'd': 'e'}]
简洁写法(使用itertools)
如果你偏好更紧凑的代码,可以借助itertools.chain批量合并所有嵌套字典的键值对:
from itertools import chain x = [{'a': {'b': 'c'}}, {'a': {'d': 'e'}}] merged_dict = dict(chain.from_iterable(item['a'].items() for item in x)) result = [merged_dict]
注意事项
如果不同嵌套字典存在重复键,后面的键值对会覆盖前面的——这是dict.update()和dict()构造方法的默认行为。
内容的提问来源于stack exchange,提问作者kryton007
相关产品推荐
相关产品推荐

