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

如何对三重嵌套列表内的元素按组对应求和?

嵌套列表对应位置求和解决方案

方法一:用zip()+列表推导式(简洁高效)

针对你的需求,最简洁的实现方式是利用zip()解包组内的所有列表,再对每个对应位置的元素求和:

# 示例数据
data = [([1, 0, 1, 1], [1, 0, 1, 10]), ([1, 0, 1, 1], [1, 1, 0, 100]), ([1, 0, 1, 10], [1, 1, 0, 100])]

# 计算每组对应位置的和
result = [tuple(sum(items) for items in zip(*group)) for group in data]
print(result)
# 输出:([2, 0, 2, 11], [2, 1, 1, 101], [2, 1, 1, 110])

关键说明:

  • *group将每组内的多个列表解包为zip()的参数,这样zip()会把所有列表的对应位置元素打包成元组(比如第一组会得到(1,1), (0,0), (1,1), (1,10))
  • 对每个元组执行sum()得到对应位置的总和,最后转成tuple匹配你要的结果格式(如果需要列表,直接去掉tuple()即可)

这个写法完全适配你的实际场景:1000组、每组10个30元素的列表,运行效率也足够。

方法二:自定义循环(直观易调试)

如果更倾向于手动控制流程,用嵌套循环实现:

result = []
for group in data:
    # 初始化和列表,长度与组内单个列表一致
    sum_list = [0] * len(group[0])
    for lst in group:
        for idx, num in enumerate(lst):
            sum_list[idx] += num
    result.append(tuple(sum_list))

常见问题排查

你之前尝试失败可能是这两个原因:

  • 使用zip(group)而非zip(*group):前者会把每个列表作为整体打包,而非对应位置元素
  • 循环时未正确初始化和列表,或索引越界(确保组内所有列表长度一致)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 17:45:10