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

Python实现嵌套列表内JSON字典的values字段逐元素分组求和

嵌套列表内字典values数组逐位置求和实现方案

需求说明

现有两层嵌套结构的列表:

  • 共2个一级子列表
  • 每个一级子列表下存储若干字典,每个字典的values字段对应一个长度相等的数值数组
    输入结构示例如下:
input_data = [
  [
    {'type': 'a', 'id': 1, 'values': [1.0, 1.0, 0.5, 0.3]}, 
    {'type': 'a', 'id': 2, 'values': [29, 25, 21, 22]},
  ], 
  [
    {'type': 'a', 'id': 3, 'values': [6.36, 6.58, 6.62, 6.66 ]}, 
    {'type': 'a', 'id': 4, 'values': [1.2, 1.5, 1.5, 1.5]},
  ]
]

要求以每个一级子列表为单位,对该子列表下所有字典的values数组进行逐位置元素求和,最终输出格式如下:

output=[[30, 26, 21.5, 22.3 ],[7.56, 8.08, 8.02, 8.16 ]]

实现代码

# 定义输入数据
input_data = [
    [
        {'type': 'a', 'id': 1, 'values': [1.0, 1.0, 0.5, 0.3]},
        {'type': 'a', 'id': 2, 'values': [29, 25, 21, 22]},
    ],
    [
        {'type': 'a', 'id': 3, 'values': [6.36, 6.58, 6.62, 6.66]},
        {'type': 'a', 'id': 4, 'values': [1.2, 1.5, 1.5, 1.5]},
    ]
]

# 核心处理逻辑
output = []
for sub_group in input_data:
    # 提取当前分组下所有values数组
    all_values = [item['values'] for item in sub_group]
    # 按位置分组后逐组求和
    group_sum = [sum(pos_elements) for pos_elements in zip(*all_values)]
    output.append(group_sum)

# 打印结果验证
print(output)

逻辑说明

  • 遍历每个一级子列表(分组),提取分组内所有字典的values字段,生成分组内所有数值数组的集合
  • 借助zip(*all_values)语法,将多个等长数组按位置解包,得到每个位置对应的所有元素的元组
  • 对每个位置的元素元组求和,得到当前分组的逐位置求和结果
  • 汇总所有分组的结果,得到最终输出
    运行上述代码后得到的结果和要求的输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:15:03