MST
星途 面试题库

面试题:Python多维列表索引边界异常处理策略

有一个二维列表 `matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]`,编写一个函数,该函数接收两个索引 `i` 和 `j`,用于访问 `matrix[i][j]` 的元素。要求函数能够妥善处理索引越界的情况,并给出有意义的错误提示或返回默认值。请详细说明你的错误处理思路并提供完整的Python代码。
27.3万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

错误处理思路

  1. 检查行索引 i 是否在合法范围内,即 0 <= i < len(matrix)
  2. 如果行索引合法,再检查列索引 j 是否在合法范围内,即 0 <= j < len(matrix[i])
  3. 如果索引越界,返回默认值并给出错误提示,提示用户索引越界。

Python代码

def access_matrix_element(matrix, i, j, default=None):
    if i < 0 or i >= len(matrix):
        print(f"行索引 {i} 越界,矩阵有效行索引范围是 0 到 {len(matrix) - 1}。")
        return default
    if j < 0 or j >= len(matrix[i]):
        print(f"列索引 {j} 越界,矩阵第 {i} 行的有效列索引范围是 0 到 {len(matrix[i]) - 1}。")
        return default
    return matrix[i][j]


matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(access_matrix_element(matrix, 1, 1))
print(access_matrix_element(matrix, 3, 1))
print(access_matrix_element(matrix, 1, 3))