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

Python循环遍历三维数组触发IndexError索引越界错误排查

问题描述

现有一个三维列表,需要提取指定元素,本示例预期打印输出6、9、20,但运行代码时Python抛出IndexError: list index out of range错误。
错误实现代码如下:

values = [
    [[0, 6], [0, 9], [0, 20]],
    [[1, 2], [1, 4], [1, 9 ]]]
i=0
for j in range(0,len(values[i])):
   print(values[i][i][j])

单独执行print(values[0][0][1])语句可正常运行,能正确输出结果6,不清楚循环中的代码哪里编写有误导致报错。

错误原因

索引层级逻辑写错了:

  • 代码中i固定为0,j的循环范围是len(values[i])也就是3,因此j会依次取0、1、2三个值
  • 循环内写的values[i][i]等价于values[0][0],对应的是长度为2的列表[0, 6],它的合法索引只有0和1
  • 当j循环到2时,尝试访问[0,6][2],自然会触发索引越界错误
  • 就算不触发越界,这个写法也始终在访问第一个二级子列表[0,6]的元素,根本取不到后面的9和20
修复代码

你需要遍历i=0下的所有二级子列表,取每个二级子列表索引为1的元素即可,修改后代码如下:

values = [
    [[0, 6], [0, 9], [0, 20]],
    [[1, 2], [1, 4], [1, 9]]
]
i = 0
for j in range(len(values[i])):
    print(values[i][j][1])

运行后输出结果符合预期:

6
9
20

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:18:14