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

在矩阵指定位置添加数字报错‘List index out of range’求解决

问题分析与解决办法

报错原因

List index out of range 本质是你要访问的矩阵行/列不存在——要么是矩阵没初始化到位,要么是你用的索引超出了当前矩阵的有效范围。

常见错误场景与修正

1. 矩阵未初始化就直接赋值

比如你写了类似这样的代码:

matrix = []
matrix[0][0] = 10  # 报错!matrix是空列表,根本没有第0行

修正:先初始化对应大小的矩阵
如果是固定行数和列数的矩阵,用嵌套列表推导式初始化:

# 示例:创建3行4列、默认值为0的矩阵
rows = 3
cols = 4
matrix = [[0 for _ in range(cols)] for _ in range(rows)]

# 现在可以安全赋值
matrix[1][2] = 10  # 第2行第3列(索引从0开始)

2. 索引超出矩阵范围

比如你的矩阵只有3行(索引0、1、2),但你用了matrix[3][0],或者某行只有2列,你用了matrix[0][2],都会触发报错。
修正:赋值前检查索引合法性
可以加简单的判断:

target_row = 2
target_col = 3
if target_row < len(matrix) and target_col < len(matrix[target_row]):
    matrix[target_row][target_col] = 10
else:
    print("索引超出矩阵范围")

3. 动态添加行/列

如果需要动态扩展矩阵(比如不确定初始大小),要先确保目标行和列存在:

matrix = []
target_row = 1
target_col = 2

# 先确保目标行存在
while len(matrix) <= target_row:
    matrix.append([])
# 再确保目标列在该行存在
while len(matrix[target_row]) <= target_col:
    matrix[target_row].append(0)

# 现在赋值
matrix[target_row][target_col] = 10

总结

你的核心问题是矩阵的初始化或索引访问逻辑不严谨,按照上面的方式调整后就能解决报错。如果是用了特定函数操作矩阵,只要确保函数接收的矩阵是合法结构、索引在有效范围内即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 06:01:17