Python 中的 IndexError: list index out of range 错误
IndexError: list index out of range 是 Python 中常见的错误之一,表示你试图访问列表中不存在的索引位置。
错误原因
这个错误通常发生在以下情况:
尝试访问的索引超过了列表的最大有效索引
列表为空时尝试访问任何索引
循环或迭代时索引计算错误
示例
my_list = [1, 2, 3]

# 错误示例1 - 索引过大
print(my_list[3])  # 最大有效索引是2

# 错误示例2 - 空列表
empty_list = []
print(empty_list[0])

# 错误示例3 - 循环中的错误
for i in range(len(my_list) + 1):  # 多循环了一次
    print(my_list[i])
解决方法
检查列表长度:使用 len() 函数确认列表长度
if len(my_list) > index_you_want:
    print(my_list[index_you_want])
使用 try-except 捕获错误:
try:
    print(my_list[3])
except IndexError:
    print("索引超出范围")
检查列表是否为空:
if my_list:  # 列表不为空
    print(my_list[0])
使用负索引时注意负索引从-1开始表示最后一个元素
my_list = [1, 2, 3]
print(my_list[-1])  # 输出3
print(my_list[-4])  # 引发IndexError
循环时使用更安全的方式:
# 直接迭代元素
for item in my_list:
    print(item)
    
# 或者使用enumerate
for index, item in enumerate(my_list):
    print(f"索引{index}的值是{item}")
记住,Python 列表的索引是从0开始的,所以长度为n的列表,有效索引范围是0到n-1。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐