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

Python定义2D list时出现IndexError索引越界错误的原因是什么

Python 2D列表IndexError错误原因分析

你提供的出错代码如下:

rows = 7  
cols = 6  
mat = []  
for i in range(cols):
    col = []  
    for j in range(rows):
        col.append(0)  
    mat.append(col) 

for i in range(cols):  
    for j in range(rows):
        print(mat[j])
    print('\n')

错误产生的核心原因是索引访问超出了列表的合法范围,具体拆解如下:

  • 构造mat时,外层循环执行cols = 6次,因此mat本身的长度为6,合法正索引范围是0 ~ 5。
  • 打印逻辑中内层循环遍历range(rows = 7),循环变量j的取值会到6,此时执行mat[j]相当于访问mat[6],已经超出了mat的最大合法索引,因此触发IndexError: list index out of range。
  • 额外说明:你的代码同时存在行列逻辑混淆的问题,当前构造的mat每个元素对应一列数据,长度为7;如果要实现常规的按行遍历2D列表的逻辑,可调整构造或打印逻辑,参考修复示例:
# 修复示例1:匹配当前构造逻辑的打印方式
for col_idx in range(cols):
    print(mat[col_idx])

# 修复示例2:调整为常规行优先的2D列表构造+打印
rows = 7
cols = 6
mat = [[0 for _ in range(cols)] for _ in range(rows)]
for row in mat:
    print(row)

内容的提问来源于stack exchange,提问作者Dr. Erfox

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:24:03