以下是一个示例代码,用于按照一组任意的键对字典列表进行分组,并对其中一组不同的键进行求和。
from collections import defaultdict
def group_and_sum_dicts(dicts, group_key, sum_key):
groups = defaultdict(int)
for d in dicts:
group_value = d[group_key]
sum_value = d[sum_key]
groups[group_value] += sum_value
return groups
# 示例数据
dicts = [
{'group': 'A', 'value': 1},
{'group': 'B', 'value': 2},
{'group': 'A', 'value': 3},
{'group': 'B', 'value': 4},
{'group': 'C', 'value': 5},
{'group': 'C', 'value': 6}
]
# 按照 'group' 键进行分组,并对 'value' 键进行求和
result = group_and_sum_dicts(dicts, 'group', 'value')
# 输出结果
for group, total_value in result.items():
print(f"Group {group}: {total_value}")
上述代码中,group_and_sum_dicts
函数接受一个字典列表 dicts
,一个用于分组的键 group_key
,以及一个用于求和的键 sum_key
。该函数使用 defaultdict
创建一个默认值为 0 的字典 groups
,用于存储分组后的结果。然后,遍历字典列表 dicts
,对每个字典中的 group_key
和 sum_key
进行提取,并将 sum_key
的值累加到对应的分组中。最后,返回分组后的结果字典 groups
。
示例数据中的字典列表 dicts
包含了三个不同的分组 'A'、'B' 和 'C',以及对应的值。运行该代码会按照分组键 'group' 进行分组,并对值键 'value' 进行求和。最后,输出每个分组的求和结果。