MST

星途 面试题库

面试题:Python中如何避免简单列表索引错误

假设有一个Python列表 `my_list = [1, 2, 3, 4, 5]`,编写一段代码,在不引发索引错误的情况下,获取列表中倒数第二个元素。同时解释下在Python中可能导致列表索引错误的常见情况及如何避免。
14.9万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
my_list = [1, 2, 3, 4, 5]
last_but_one = my_list[-2] if len(my_list) >= 2 else None
print(last_but_one)

常见导致列表索引错误的情况及避免方法

  1. 正向索引越界
    • 情况:当使用的正向索引值大于或等于列表的长度时,会引发 IndexError。例如 my_list = [1, 2, 3]; print(my_list[3]),这里列表长度为3,有效索引是0、1、2,索引3超出范围。
    • 避免方法:在使用正向索引前,确保索引值小于列表的长度。可以通过 if index < len(my_list): value = my_list[index] 这样的条件判断来避免。
  2. 负向索引越界
    • 情况:负向索引从 -1 开始表示列表的最后一个元素。如果负向索引值的绝对值大于列表长度,也会引发 IndexError。例如 my_list = [1, 2, 3]; print(my_list[-4]),这里列表长度为3,负向索引 -1、-2、-3 有效,-4超出范围。
    • 避免方法:使用负向索引时,确保其绝对值不大于列表长度。同样可以通过条件判断 if abs(negative_index) <= len(my_list): value = my_list[negative_index] 来预防。
  3. 对空列表进行索引
    • 情况:对空列表执行任何索引操作都会引发 IndexError。例如 my_list = []; print(my_list[0])
    • 避免方法:在对列表进行索引前,先检查列表是否为空。可以使用 if my_list: 条件判断,只有列表不为空时再进行索引操作。