我告诉我的程序打印输出的第53行。这个错误告诉我没有多少行,因此无法打印出来?

#1 楼

如果您有一个包含53个项目的列表,则最后一个是thelist[52],因为索引从0开始。尝试从序列中检索索引时(例如IndexErrorIndexError),将引发IndexError,但在序列中找不到索引。 Python文档定义了引发此异常的时间:
序列下标超出范围时引发。 (来源)
这是一个引发list的示例:提供重要信息。请注意,存在一个超出范围的序列引用以及该序列的类型,在这种情况下为tuple。该信息加上其余的追溯信息通常足以帮助快速确定如何解决此问题。

#2 楼

是的,

,您正在尝试访问列表中不存在的元素。一个错误?

#3 楼

Python索引的工作方式是从0开始,因此列表的第一个数字为[0]。您将必须打印[52],因为起始索引为0且
,因此第53行为[52]。 :)

#4 楼

是。序列中没有第54项。

#5 楼

那就对了。 “列表索引超出范围”很可能意味着您正在引用列表的n-th元素,而列表的长度小于n

#6 楼

当您要克服此错误时,请始终牢记,索引和范围的默认值从0开始,因此,如果项总数为100,则l [99]和range(99)将允许您访问最后一个元素。 br />
每当您遇到这种类型的错误时,请交叉检查范围在中间/中间的项目,并确保它们的索引在输出时不会排在最后,这样您就犯了上述完美的错误。 br />

#7 楼

如果您从文本文件中读取列表,则可能会得到最后一个空行作为列表元素。
您可以这样删除它:

list.pop()
for i in list:
   i[12]=....


#8 楼

在Python中,索引从0开始。因此,如果您有一个包含53个项目的列表,则list[52]将是列表中的最后一个项目。