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

如何计算嵌套列表中各子列表的元素和并生成结果列表?

嘿,这个需求我碰到过好多次啦,给你分享几个实用的Python实现方式,从简洁到易理解的都有:

1. 最简洁的列表推导式写法

这是Python里处理这类问题的首选方案,一行代码就能搞定,可读性还极强:

# 示例嵌套列表
nested_list = [[10, 20, 30], [40, 50, 73], [80, 90, 12]]
# 计算每个子列表的和并生成新列表
sum_list = [sum(sublist) for sublist in nested_list]
print(sum_list)  # 输出: [60, 163, 182]

原理很简单:遍历嵌套列表中的每一个子列表,用Python内置的sum()函数直接计算子列表的元素总和,最后把所有结果收集到新列表sum_list里。

2. 适合新手的普通循环写法

如果你刚接触Python,觉得列表推导式有点抽象,用普通的循环一步步写会更清晰:

nested_list = [[10, 20, 30], [40, 50, 73], [80, 90, 12]]
sum_list = []
# 外层循环遍历每个子列表
for sublist in nested_list:
    sub_total = 0
    # 内层循环累加子列表里的每个元素
    for num in sublist:
        sub_total += num
    # 把当前子列表的和添加到结果列表
    sum_list.append(sub_total)
print(sum_list)  # 输出: [60, 163, 182]

这种写法把每一步都拆解开,能很清楚看到“初始化总和→累加元素→添加结果”的完整流程,新手更容易理解。

3. 鲁棒性更强的兼容写法(处理非数字元素)

如果你的嵌套列表里可能混有非数字类型(比如字符串、布尔值),可以加个类型判断,避免代码报错:

nested_list = [[10, 20, "abc"], [40, True, 73], [80, "xyz", 12]]
sum_list = []
for sublist in nested_list:
    sub_total = 0
    for item in sublist:
        # 只累加整数和浮点数类型的元素
        if isinstance(item, (int, float)):
            sub_total += item
    sum_list.append(sub_total)
print(sum_list)  # 输出: [30, 114, 92]

这里利用isinstance()函数过滤出数字类型的元素,即使子列表里有其他类型的内容,代码也能正常运行,只会计算有效数字的和。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:40:09