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

Python嵌套列表列求和:寻求更简洁/pythonic的实现方式

计算嵌套列表的列总和:更Pythonic的实现方式

针对你的需求,有几种比嵌套循环更简洁高效的实现方式,以下是具体方案:

1. 纯Python最简方案:zip() + sum()

这是最符合Python风格的写法,利用zip(*nested_list)将嵌套列表转置(把列变成行),再对每一行(原列)求和:

list_a = [[1, 2, 3],
          [4, 5, 6],
          [7, 8, 9]]

def sum_columns(nested_list):
    return [sum(col) for col in zip(*nested_list)]

print(sum_columns(list_a))  # 输出: [12, 15, 18]

或者更精简的一行写法:

sum_columns = lambda lst: [sum(col) for col in zip(*lst)]

2. 修复你的列表推导式尝试

你提到想用列表推导式但没成功,其实可以基于原逻辑改写,避免嵌套循环的冗余:

def sum_columns(nested_list):
    col_len = len(nested_list[0])
    return [sum(row[col] for row in nested_list) for col in range(col_len)]

这里把内层循环的求和逻辑用生成器表达式替代,代码更紧凑。另外注意:原代码里误用了全局变量list_a,应该用函数参数nested_list,保证函数的通用性。

3. 用NumPy实现(适合大规模数据)

如果处理的是大数据集,NumPy的向量运算效率会远高于纯Python循环:

import numpy as np

list_a = [[1, 2, 3],
          [4, 5, 6],
          [7, 8, 9]]

arr = np.array(list_a)
col_sums = arr.sum(axis=0).tolist()  # axis=0表示按列求和

print(col_sums)  # 输出: [12, 15, 18]

NumPy会自动优化运算,尤其当嵌套列表规模很大时,性能优势明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 21:59:55