MST
星途 面试题库

面试题:Python 列表元素访问边界问题之复杂场景

给定一个函数 `def access_list(lst, index):`,该函数接收一个列表 `lst` 和一个索引 `index`,要求在函数内部实现对索引的边界检查。如果索引在边界内,返回对应元素;如果索引越界,根据越界方向(正向越界或负向越界)返回不同的默认值(正向越界返回列表最后一个元素,负向越界返回列表第一个元素)。请用Python代码实现该函数,并简要说明你对边界条件判断的思路。
44.2万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
def access_list(lst, index):
    if index >= 0:
        if index < len(lst):
            return lst[index]
        else:
            return lst[-1]
    else:
        if abs(index) <= len(lst):
            return lst[index]
        else:
            return lst[0]
  1. 边界条件判断思路
    • 首先判断索引index是否为非负。
    • 如果index非负,再检查index是否小于列表长度len(lst),如果小于则直接返回lst[index];否则返回列表最后一个元素lst[-1],即正向越界的处理。
    • 如果index为负,检查其绝对值是否小于等于列表长度,如果是则返回lst[index];否则返回列表第一个元素lst[0],即负向越界的处理。