矩阵外的函数输入

我正在编写一个带有参数d和e. d表示用户输入的矩阵,表示矩阵中的e起始位置。我能够定义e为矩阵的位置d:


mainIndex = e[0]

secondIndex = e[1]

position = d[row][column]

我有一个挑战,如果用户输入用户输入的矩阵之外的位置,它会返回False;例如,如果矩阵d = [[3,2,1],[6,5,4],[9,8,7]]and e = [3,0],它应该返回False而不是引发index out of range错误。我如何做到这一点?


饮歌长啸
浏览 190回答 2
2回答

qq_遁去的一_1

您应该能够按如下方式捕获错误:mainIndex = e[0]secondIndex = e[1]try:    position = d[row][column]except IndexError:    return False

料青山看我应如是

try / except您可以编写一个函数并捕获IndexError。我还建议您不要链接索引器,而是使用arr[row, column]语法。例如:d = np.array([[3,2,1],[6,5,4],[9,8,7]])def get_val(A, idx):&nbsp; &nbsp; try:&nbsp; &nbsp; &nbsp; &nbsp; return A[tuple(idx)]&nbsp; &nbsp; except IndexError:&nbsp; &nbsp; &nbsp; &nbsp; return Falsee = [3, 0]f = [0, 2]get_val(d, e)&nbsp; # Falseget_val(d, f)&nbsp; # 1if / else通过if/else构造可以实现另一种更明确的解决方案:def get_val(A, idx):&nbsp; &nbsp; if all(i < j for i, j in zip(idx, A.shape)):&nbsp; &nbsp; &nbsp; &nbsp; return A[tuple(idx)]&nbsp; &nbsp; return False由于我们使用tuple(idx),这两种解决方案都适用于任意维度。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python