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

如何移除元组列表中首元素重复项并求和对应第二个元素

解决方案

我们可以利用字典来聚合相同任务的耗时(因数据已按日期分组,无需额外处理日期维度),具体实现步骤如下:

代码实现

def merge_task_hours(daily_tasks):
    task_summary = {}
    # 遍历每日任务,累加相同任务的耗时
    for task_name, hours_str, date in daily_tasks:
        hours = int(hours_str)
        if task_name in task_summary:
            task_summary[task_name] += hours
        else:
            task_summary[task_name] = hours
    # 将字典转换回要求的元组列表格式
    return [(name, str(total_hours), date) for name, total_hours in task_summary.items()]

# 测试用输入
input_tasks = [
    ('Add features to app', '5', '2022-10-28'), 
    ('Add features to app', '3', '2022-10-28'), 
    ('Deploy app to GitHub', '10', '2022-10-28'),
    ('Deploy app to GitHub', '2', '2022-10-28'),  
    ('Create an app, which gets tasks entries using API', '7', '2022-10-28')
]

# 输出合并后的结果
print(merge_task_hours(input_tasks))

逻辑说明

  1. 遍历输入的任务列表,将耗时字符串转为整数,避免字符串拼接错误
  2. 用字典的键唯一标识任务名,值存储该任务的累计耗时
  3. 最后将字典转换回元组列表,把累计耗时转回字符串格式,日期沿用原分组日期

运行结果

执行代码后会输出目标格式的列表:

[('Add features to app', '8', '2022-10-28'), ('Deploy app to GitHub', '12', '2022-10-28'), ('Create an app, which gets tasks entries using API', '7', '2022-10-28')]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 19:45:36