python3 有多个字典,其中有相同两个字段的字典其他字段的值相加
时间: 2024-01-12 20:04:31 浏览: 140
python两个_多个字典合并相加的实例代码
可以使用 defaultdict 来实现这个需求。首先遍历所有的字典,将相同的两个字段作为 key,其他字段的值作为 value 加入到一个 defaultdict 中。遍历完成后,再将 defaultdict 中的数据转化为字典格式即可。
下面是示例代码:
```python
from collections import defaultdict
# 多个字典
dicts = [
{'key1': 'a', 'key2': 'b', 'value': 1},
{'key1': 'a', 'key2': 'b', 'value': 2},
{'key1': 'c', 'key2': 'd', 'value': 3},
{'key1': 'c', 'key2': 'd', 'value': 4},
{'key1': 'a', 'key2': 'c', 'value': 5},
]
# 使用 defaultdict 来计算相同 key1 和 key2 的 value 的和
result = defaultdict(int)
for d in dicts:
key = (d['key1'], d['key2'])
value = d['value']
result[key] += value
# 将 defaultdict 转化为字典
final_dict = [{'key1': k[0], 'key2': k[1], 'value': v} for k, v in result.items()]
print(final_dict)
```
输出结果为:
```
[{'key1': 'a', 'key2': 'b', 'value': 3}, {'key1': 'c', 'key2': 'd', 'value': 7}, {'key1': 'a', 'key2': 'c', 'value': 5}]
```
其中,第一个字典和第二个字典的 key1 和 key2 相同,所以将它们的 value 相加得到了 3。其他的字典的 key1 和 key2 都不同,所以直接将它们转化为了字典格式。
阅读全文