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

Python中如何根据key参数对二维数组对应元素进行求和聚合

Python 按指定key聚合求和的实现方案

核心思路

利用字典存储聚合结果,将作为聚合依据的前两项转为可哈希的元组作为key,对应value为累加的第三项数值,最后转换为目标格式列表即可,逻辑清晰且时间复杂度为O(n),效率很高。

实现代码

方案1:使用标准库collections.defaultdict(最简洁)

from collections import defaultdict

x = [[0,"xxx",100],[1,"yyy",100],[1,"xxx",100]]
agg_dict = defaultdict(int)

for item in x:
    # 前两项转元组作为key
    key = tuple(item[:2])
    agg_dict[key] += item[2]

# 转换为目标格式列表
result = [list(k) + [v] for k, v in agg_dict.items()]

方案2:无依赖原生实现(无需导入任何模块)

x = [[0,"xxx",100],[1,"yyy",100],[1,"xxx",100]]
agg_dict = {}

for item in x:
    key = tuple(item[:2])
    if key not in agg_dict:
        agg_dict[key] = 0
    agg_dict[key] += item[2]

result = [list(k) + [v] for k, v in agg_dict.items()]

补充说明

  • Python 3.7及以上版本默认字典保留插入顺序,输出结果的顺序和原数组中key首次出现的顺序一致;如果使用更低版本需要保序,可以替换为collections.OrderedDict。
  • 如果你给出的示例结果中少了[1, "xxx", 100]属于示例输入笔误,将输入的第三项改为[0,"xxx",100]即可得到你给出的示例输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:15:05