“IndexError: list index out of range” 是不是意味着我的列表少于 N 个元素?
我让我的程序打印输出的第53行。这条错误信息是在告诉我,输出的行数没有那么多,所以无法打印出这一行吗?
7 个回答
7
Python中的索引是从0开始的,所以你列表中的第一个数字是[0]。如果你想打印出第53行的内容,你需要写成[52]
,因为索引是从0开始的。
只需把你想要的值减去1,就可以了。:)
36
是的,
你正在尝试访问一个列表中不存在的元素。
MyList = ["item1", "item2"]
print MyList[0] # Will work
print MyList[1] # Will Work
print MyList[2] # Will crash.
你是不是犯了一个越界错误?
87
如果你有一个包含53个项目的列表,最后一个项目是 thelist[52]
,因为列表的索引是从0开始的。
来自 Real Python: 理解Python的追踪信息 - IndexError
:
IndexError
IndexError
是当你试图从一个序列(比如list
或tuple
)中获取一个索引,但这个索引在序列中找不到时引发的错误。Python的文档中定义了这个异常何时会被触发:当序列下标超出范围时引发。 (来源)
下面是一个会引发
IndexError
的例子:
test = list(range(53))
test[53]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-6-7879607f7f36> in <module>
1 test = list(range(53))
----> 2 test[53]
IndexError: list index out of range
对于
IndexError
的错误信息并没有提供太多有用的信息。你可以看到你有一个序列引用是out of range
(超出范围),并且这个序列的类型是list
。这些信息,加上追踪信息的其余部分,通常足以帮助你快速找到解决问题的方法。