Python列表操作出现IndexError: list index out of range报错求助
Python IndexError: list index out of range 原因及解决方案
报错产生原因
Python中的列表属于序列类型,所有序列的索引都是从0开始计数,而非从1开始计数。
你创建的列表L1 = [1,2,3]总共有3个元素,对应的合法正索引只有0、1、2三个:
L1[0]对应元素1L1[1]对应元素2L1[2]对应元素3
你尝试访问L1[3]时,该索引已经超出了列表支持的最大合法索引范围,因此触发了IndexError报错。
解决方法
- 访问元素前先确认索引处于合法范围:列表的合法正索引区间为
0 ≤ 索引值 < len(列表名),可以先用len()函数获取列表总长度,判断待使用的索引是否小于列表长度。
示例验证代码:
L1 = [1,2,3] # 先获取列表长度 length = len(L1) # 长度为3说明最大合法正索引为2 index = 3 if index < length: print(L1[index]) else: print("索引超出列表合法范围")
- 要获取列表末尾元素时,优先使用负索引语法,比如
L1[-1]即可直接取到最后一个元素,不需要手动计算索引值,避免计数错误 - 遍历列表元素时,优先使用
for item in L1的遍历方式,不需要手动处理索引,可完全避免该类索引报错
内容的提问来源于stack exchange,提问作者user17336875
相关产品推荐
相关产品推荐

