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

提取二维列表最后一列报list index out of range错误的原因与解决方法

错误原因
  • 你代码里的nestedList[1:19]是对外层的行列表做切片,得到的是原列表第2行到第19行(对应索引1到18,Python切片遵循左闭右开规则)组成的新列表,这个新列表一共只有18个元素,合法索引范围是0~17,不存在索引19的元素,自然会抛出list index out of range错误。
  • 本质是逻辑理解偏差:这个写法是尝试取切片后行列表的第20个元素,根本没有逐行提取最后一列的操作,完全不符合需求逻辑。
正确实现方法

需求是提取所有行的最后一列元素,同时排除首行、末行,直接遍历目标行范围逐行取列值即可,推荐用简洁的列表推导式写法:

# nestedList[1:-1] 自动排除首行(索引0)和末行(索引19)
# row[-1] 取每一行的最后一个元素,也就是最后一列,等价于row[19]
variable = [row[-1] for row in nestedList[1:-1]]

如果要显式写出行索引范围,和切片[1:-1]等价的写法是nestedList[1:19],最终得到的结果完全一致。
如果习惯用普通循环实现,逻辑完全相同:

variable = []
# 遍历行索引1到18(跳过首行0、末行19)
for row_idx in range(1, 19):
    variable.append(nestedList[row_idx][-1])

针对你给出的20×20测试列表,运行后variable的存储结果为:

[0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:45:35