如何将列表中的多个sub_dictionary合并为单个完整大字典
Python合并子字典列表为单个总字典的实现方案
下面给出不同Python版本适用的实现方法:
方法1:字典推导式(全版本通用,可读性最高)
遍历列表中每个子字典的键值对直接生成新字典,兼容Python 2.7及以上所有版本:
# 你的原始数据列表 raw_list = [{'Afghanistan': 0.0}, {'Albania': 0}, {'Algeria': 1.0}, ...] merged_dict = {key: value for sub_dict in raw_list for key, value in sub_dict.items()}
如果遇到重复键需要自定义取值逻辑(比如取最大值、求和),可以在推导式基础上调整为循环判断,灵活度最高。
方法2:字典解包语法(Python3.5+适用,写法简洁)
利用Python3.5新增的字典解包特性,一行即可完成合并:
merged_dict = {**sub_dict for sub_dict in raw_list}
Python3.9及以上版本还可以用字典合并运算符进一步简化:
merged_dict = {} for sub_dict in raw_list: merged_dict |= sub_dict
方法3:基础update方法(兼容性最强)
如果是Python2.7以下的老旧版本,用最基础的字典update方法迭代更新即可:
merged_dict = {} for sub_dict in raw_list: merged_dict.update(sub_dict)
注意:以上所有方法默认规则为,遇到重复键时保留最后出现的子字典中的对应值,如有特殊去重需求可在遍历阶段添加对应判断逻辑。
内容的提问来源于stack exchange,提问作者Not_here_to_play
相关产品推荐
相关产品推荐

