python3 有多个列表每个列表有多个字典,其中有相同两个字段的字典其他字段的值相加
时间: 2024-03-11 19:51:29 浏览: 62
你可以尝试使用字典和列表的嵌套循环来实现这个功能。以下是一个示例代码,它假设每个列表都有一个 "id" 和 "value" 字段,需要将具有相同 "id" 值的字典的 "value" 值相加:
```python
# 假设有两个列表 list1 和 list2,每个列表中都有多个字典
list1 = [{"id": 1, "value": 10}, {"id": 2, "value": 20}, {"id": 3, "value": 30}]
list2 = [{"id": 1, "value": 5}, {"id": 2, "value": 15}, {"id": 4, "value": 40}]
# 创建一个新的列表来存储结果
result = []
# 遍历第一个列表中的每个字典
for dict1 in list1:
# 初始化一个变量来存储相加后的值
total_value = dict1["value"]
# 遍历第二个列表中的每个字典
for dict2 in list2:
# 如果两个字典的 "id" 值相同,则将它们的 "value" 值相加
if dict1["id"] == dict2["id"]:
total_value += dict2["value"]
# 创建一个新的字典,其中包含相同 "id" 值的字典的相加后的值
new_dict = {"id": dict1["id"], "total_value": total_value}
# 将新的字典添加到结果列表中
result.append(new_dict)
# 打印结果列表
print(result)
```
这将输出以下结果:
```
[{'id': 1, 'total_value': 15}, {'id': 2, 'total_value': 35}, {'id': 3, 'total_value': 30}]
```
请注意,这个示例代码假设每个列表中的字典都具有相同的键。如果键不同,则需要进行相应的更改。
阅读全文