gpt4 book ai didi

python - Groupby 和 count/sum 与 python 中的元组列表?

转载 作者:太空宇宙 更新时间:2023-11-03 12:45:11 25 4
gpt4 key购买 nike

我有一个元组列表:

data = [('Team1', 'Mark Owen', 40),
('Team1', 'John Doe', 25),
('Team2', 'Raj Patel', 40),
('Team3', 'Matt Le Blanc', 30),
('Team1', 'Rene Russo', 40),
('Team1', 'Ronald Regan', 40),
('Team3', 'Dean Saunders', 15),
('Team2', 'Michael Antonio', 30)]

我想按团队分组(每个元组的索引[0]),计算每个团队中的人数或人数(索引[1])并将与每个团队相关的数字相加(索引[2]),但我不能很清楚这一点。到目前为止,我已经尝试使用 defaultdict(list) 返回一个字典,例如我已经尝试过按团队分组:

def create_hrs_totals():  
result = defaultdict(list)
for k, *v in data():
result[k] += v
return dict(result)

但后来我努力使用该输出来实现我需要使用列表 comp 或其他任何东西......我正在寻找的结果是一个新列表:

[Team1, 4, 145, 
Team2, 2, 80,
Team3, 2, 70]

有更好的方法吗?

最佳答案

groupbyitertools 的一个函数,但它并不是您想要的。相反,让我们从 collections

导入 defaultdict
from collections import defaultdict
def data_by_team(data):
d = defaultdict(lambda: [0,0])
for team, name, number in data:
d[team][0] += 1
d[team][1] += number
return d

这将返回一个 defaultdict,它将团队名称映射到一个列表,该列表包含球员人数及其总和。

关于python - Groupby 和 count/sum 与 python 中的元组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40312454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com