当尝试访问第 N 个项目时出现“IndexError:列表索引超出范围”是否意味着我的列表中的项目少于 N 个?
- 2024-11-27 10:43:00
- admin 原创
- 11
问题描述:
我让程序打印出输出的第 53 行。这个错误是不是在告诉我行数不够多,因此无法打印出来?
解决方案 1:
如果您有一个包含 53 个项目的列表,则最后一个项目是thelist[52]
因为索引从 0 开始。
来自Real Python:理解 Python 回溯-IndexError
:
IndexError
IndexError
当您尝试从序列(如 alist
或 a )中检索索引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
在本例中为 a。这些信息与其余回溯相结合,通常足以帮助您快速确定如何修复问题。
解决方案 2:
是的,
您正在尝试访问列表中不存在的元素。
MyList = ["item1", "item2"]
print MyList[0] # Will work
print MyList[1] # Will Work
print MyList[2] # Will crash.
您遇到了一次错误吗?
解决方案 3:
Python 索引的工作方式是从 0 开始,因此列表的第一个数字将是 [0]。您必须打印 [52],因为起始索引是 0,因此第 53 行是[52]
。
从值中减去 1 就应该没问题了。:)
解决方案 4:
是的。该序列没有第 54 项。
解决方案 5:
没错。‘列表索引超出范围’很可能意味着您正在引用n-th
列表的元素,而列表的长度小于n
。
解决方案 6:
当您想要克服此错误时,请始终记住,索引和范围的默认值从 0 开始,因此如果总项目数为 100,则 l[99] 和 range(99) 将允许您访问最后一个元素。
每当您遇到此类错误时,请与范围内/中间的项目进行交叉检查,并确保它们的索引不是最后一个,如果您得到输出,那么您就犯了上述完美的错误。
解决方案 7:
如果你从文本文件中读取列表,你可能会得到最后一个空行作为列表元素。你可以像这样删除它:
list.pop()
for i in list:
i[12]=....
相关推荐
热门文章
项目管理软件有哪些?
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 项目管理必备:盘点2024年13款好用的项目管理软件
热门标签
云禅道AD