Python如何对字典列表中相同key对应的列表值按位置累加合并?
实现思路
- 初始化空字典存储最终结果
- 遍历原列表中的每个子字典,逐个处理子字典的键值对
- 遇到结果字典中不存在的键,直接将对应列表存入结果字典
- 遇到结果字典中已存在的键,将两个列表按索引位置逐元素求和后更新结果
代码实现
你给出的输入数据如下:
_list = [ {"a": [1, 20, 20, 40], "b": [0, 14, 14, 28]}, {"a": [2, 20, 20, 40], "b": [2, 14, 14, 28]}, {"c": [1, 20, 20, 40], "d": [0, 14, 14, 28]}, ]
处理代码:
result = {} for item in _list: for key, lst in item.items(): if key not in result: # 拷贝原列表避免后续修改影响原始数据 result[key] = lst.copy() else: # 逐元素累加 result[key] = [a + b for a, b in zip(result[key], lst)]
运行后打印result即可得到你需要的输出:
{ "a": [3, 40, 40, 80], "b": [2, 28, 28, 56], "c": [1, 20, 20, 40], "d": [0, 14, 14, 28] }
注意事项
以上代码默认所有相同key对应的列表长度一致,如果你实际使用场景中存在同key不同长度的列表,可以自行补充长度校验、缺省值填充的逻辑。
内容的提问来源于stack exchange,提问作者user16260011
相关产品推荐
相关产品推荐

