以下是一个示例代码,它按相同内容对行进行分组,并对每个组求和:
from collections import defaultdict
def group_and_sum(rows):
groups = defaultdict(int)
for row in rows:
content = row['content']
value = row['value']
groups[content] += value
return groups
# 示例输入数据
rows = [
{'content': 'A', 'value': 10},
{'content': 'B', 'value': 20},
{'content': 'A', 'value': 30},
{'content': 'B', 'value': 40},
{'content': 'C', 'value': 50}
]
result = group_and_sum(rows)
print(result)
这段代码首先导入了defaultdict
模块,用于创建一个默认值为0的字典。然后定义了group_and_sum
函数,它接受一个包含多个字典的列表作为输入参数。
在函数内部,我们创建了一个空的字典groups
,用于存储分组和求和的结果。然后遍历每一行数据,从中提取出content
和value
的值。我们将content
作为字典的键,并将对应的value
累加到该键的值上。
最后,函数返回了分组和求和的结果。
在示例输入数据中,我们有5个行数据,它们的content
和value
分别是:A、10;B、20;A、30;B、40;C、50。运行代码后,我们得到了如下输出结果:
defaultdict(, {'A': 40, 'B': 60, 'C': 50})
这表示按content
对行进行分组后,A组的求和结果为40,B组的求和结果为60,C组的求和结果为50。
下一篇:按相同时间戳排序