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

Python实现replace_negatives替换矩阵负值触发TypeError问题求解

报错原因分析
  • 你传入的matrix是二维矩阵,属于列表嵌套列表的结构,matrix[i]取到的是矩阵的第i行(本身是列表类型),直接把列表和整数0做大小比较,类型不兼容,所以触发该报错。
  • 仅实现了一层循环,没有遍历每行内部的单个元素,无法定位到需要修改的负数值。
  • return语句写在了循环体内部,只要执行到一次修改操作就会直接终止函数返回,剩下的所有元素都不会被处理。
额外说明

你提供的测试代码中import random写在了test()调用的后面,运行时会触发NameError,建议把import random移动到代码最开头的位置。

正确函数实现
def replace_negatives(matrix):
    # 遍历矩阵每一行
    for row in matrix:
        # 遍历当前行的每个元素索引
        for idx in range(len(row)):
            if row[idx] < 0:
                # 负数替换为绝对值
                row[idx] = abs(row[idx])
    return matrix

如果偏好更简洁的写法,也可以用列表推导式实现,逻辑完全等价:

def replace_negatives(matrix):
    matrix[:] = [[abs(num) for num in row] for row in matrix]
    return matrix

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:15:04