You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按task列表取值分组计算对应hours列表元素最大值的总和

实现思路

  • 按顺序配对task和hours的同索引元素,以task的取值为分组维度,存储对应位置的hours数值
  • 对每个分组的hours数值取最大值,所有最大值相加即为最终结果

代码实现

方法1:原生Python实现(无需额外依赖)

task = [1,1,1,1,2,2,3,4,5,5]
hours = [1,7,6,2,3,6,5,2,4,6]

group = {}
for t, h in zip(task, hours):
    if t not in group:
        group[t] = []
    group[t].append(h)

total = sum(max(v) for v in group.values())
print(total)

运行输出结果为 26。

方法2:使用collections.defaultdict简化写法

from collections import defaultdict

task = [1,1,1,1,2,2,3,4,5,5]
hours = [1,7,6,2,3,6,5,2,4,6]

group = defaultdict(list)
for t, h in zip(task, hours):
    group[t].append(h)

total = sum(max(v) for v in group.values())
print(total)

方法3:pandas实现(适合大数据量场景)

import pandas as pd

task = [1,1,1,1,2,2,3,4,5,5]
hours = [1,7,6,2,3,6,5,2,4,6]

df = pd.DataFrame({'task': task, 'hours': hours})
total = df.groupby('task')['hours'].max().sum()
print(total)

内容的提问来源于stack exchange,提问作者No Uce

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 20:36:04