以下是一个示例代码,用于按键分组数据并返回一个包含另一个键的总值的新对象:
def group_data(data_list, key1, key2):
grouped_data = {}
for data in data_list:
group_key = data[key1]
value = data[key2]
if group_key in grouped_data:
grouped_data[group_key] += value
else:
grouped_data[group_key] = value
return grouped_data
# 示例数据
data_list = [
{'group': 'A', 'value': 10},
{'group': 'A', 'value': 5},
{'group': 'B', 'value': 7},
{'group': 'B', 'value': 3},
{'group': 'C', 'value': 8},
{'group': 'C', 'value': 2}
]
# 按 'group' 键分组,计算 'value' 的总和
grouped_data = group_data(data_list, 'group', 'value')
print(grouped_data) # 输出: {'A': 15, 'B': 10, 'C': 10}
在这个例子中,group_data
函数接受一个包含字典的列表 data_list
,并按给定的键 key1
进行分组。它遍历 data_list
中的每个字典,根据 key1
和 key2
获取分组键和值。然后,它将值添加到 grouped_data
字典中的相应分组键中。如果分组键已经存在,则将值累加到已有的总值上;否则,创建一个新的键值对。
最后,grouped_data
字典包含了按给定键分组的数据,并且每个分组的值是根据给定的另一个键计算得出的总和。在上面的示例中,输出结果为 {'A': 15, 'B': 10, 'C': 10}
。