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

学习在二维列表中使用不可变函数实现行求和功能

问题分析与修正

你的代码存在三个关键错误,直接导致运行失败:

  • 索引顺序颠倒:二维列表的索引规则是table[行索引][列索引],你写成了table[n][m]——这里m是行号,n是列号,正确写法应为table[m][n]。
  • 错误累加索引值:row=row+n是把列索引n加到了累加变量里,完全偏离了“行元素求和”的目标,应该累加的是表格中的实际元素值。
  • 浮点数调用列表方法:row是你定义的浮点数累加变量,却调用了row.append()——浮点数没有这个方法,会直接抛出AttributeError。

修正后的嵌套循环代码

def func(table):
    numrows = len(table)
    numcols = len(table[0])
    result = []
    for m in range(numrows):
        row_sum = 0.00  # 变量名改为row_sum,避免和行列表概念混淆
        for n in range(numcols):
            row_sum += table[m][n]  # 累加当前行的列元素
        result.append(row_sum)
    return result

测试示例输入:

print(func([[0.2,0.1],[-0.2,0.1],[0.2,-0.1],[-0.2,-0.1]]))
# 输出: [0.3, -0.1, 0.1, -0.3]

更简洁的写法(推荐)

Python内置sum()函数可以直接对每行求和,无需手动写嵌套循环:

def func(table):
    return [sum(row) for row in table]

该写法简洁高效,且不易出错,同样能得到预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:54:25