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

Python按嵌套列表子列表首元素分组并累加对应值的实现方法

Python嵌套列表按首元素分组求和实现方案

以下是几种比手动遍历分组键累加更高效、代码更简洁的实现方式:

  • 方案1:使用collections.defaultdict(推荐,仅单次遍历原列表,时间复杂度O(n))
from collections import defaultdict

sum_dict = defaultdict(lambda: [0.0, 0])
for key, val1, val2 in ex:
    sum_dict[key][0] += val1
    sum_dict[key][1] += val2

# 处理浮点数精度后转为目标列表格式
list_result = [[k, round(v[0], 2), v[1]] for k, v in sum_dict.items()]
  • 方案2:原生字典实现(无需导入任何模块)
sum_dict = {}
for item in ex:
    key = item[0]
    if key not in sum_dict:
        sum_dict[key] = [0.0, 0]
    sum_dict[key][0] += item[1]
    sum_dict[key][1] += item[2]

list_result = [[k, round(v[0], 2), v[1]] for k, v in sum_dict.items()]
  • 方案3:Pandas实现(适合数据量较大的场景,代码极简)
import pandas as pd

df = pd.DataFrame(ex, columns=['group_key', 'col1', 'col2'])
list_result = df.groupby('group_key', as_index=False).sum().round({'col1':2}).values.tolist()

以上所有方案输出结果都和你给出的示例完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:00:04