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

如何在Python中对二维列表的子数组分别求和?

解决方案

你可以用两种简洁的方式实现二维列表每个子数组的单独求和:

方法一:列表推导式

这是最直观易读的写法,遍历二维列表中的每个子数组,对每个子数组直接调用sum()函数:

x = [[1, 2], [3, 4], [5, 6]]
sum_2d = [sum(sub_array) for sub_array in x]
# 输出结果: [3, 7, 11]

方法二:map函数结合sum

利用map()将sum()函数批量应用到每个子数组上,最后转为列表即可:

x = [[1, 2], [3, 4], [5, 6]]
sum_2d = list(map(sum, x))
# 输出结果: [3, 7, 11]

原代码问题说明

你写的sum(sum(x, []))会先通过sum(x, [])把二维列表展平成一维列表(相当于把所有子数组依次拼接成一个大列表),再对这个一维列表求和,所以得到的是所有元素的总和,而非每个子数组的单独和。比如sum(x, [])会得到[1,2,3,4,5,6],再sum就得到21,这和你的需求不符。

内容的提问来源于stack exchange,提问作者L.Ballaty

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 03:31:05