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

Python 2D列表按首列去重并对其余数值列求和的高效实现

球员数据汇总高效实现方案

最优实现方式是使用字典作为临时统计容器,利用字典键的唯一性自动聚合同一名球员的统计数据,整体时间复杂度为O(n),远高于先查重复索引再合并的方案,且代码逻辑更简洁易维护。

完整实现代码如下:

player_stats = [['Adam', 5, 10], ['Kyle', 12, 18], ['Jo', 20, 35], ['Adam', 15, 20], ['Charlie', 31, 58], ['Jo', 6, 14], ['Adam', 10, 15]]

# 初始化字典存储每个球员的总进球、总射正
temp_stats = {}
for name, goals, shots_on in player_stats:
    if name not in temp_stats:
        temp_stats[name] = [0, 0]
    temp_stats[name][0] += goals
    temp_stats[name][1] += shots_on

# 转换为要求的列表格式
player_stats_totals = [[name, *data] for name, data in temp_stats.items()]

运行后得到的player_stats_totals和你给出的预期输出完全一致:
[['Adam', 30, 45], ['Kyle', 12, 18], ['Jo', 26, 49], ['Charlie', 31, 58]]

你之前找到的查找重复索引的方法时间复杂度为O(n²),每次判断元素是否在切片中都需要遍历对应子列表,数据量较大时性能会出现明显下降,不适合用于该统计汇总场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:24:07