我正在写一个带有参数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]]
和e = [3,0]
,它应该返回False
而不是引发index out of range
错误。我该如何实现?
答案 0 :(得分:1)
您应该能够按如下所示捕获错误:
service1/
Dockerfile
manage.py
settings.py
..
service2/
Dockerfile
manage.py
settings.py
..
databasemodel/
Dockerfile
manage.py
settings.py
database/
models.py
答案 1 :(得分:1)
try
/ except
您可以编写函数并捕获IndexError
。我还建议您不要链接索引器,而应使用arr[row, column]
语法。例如:
d = np.array([[3,2,1],[6,5,4],[9,8,7]])
def get_val(A, idx):
try:
return A[tuple(idx)]
except IndexError:
return False
e = [3, 0]
f = [0, 2]
get_val(d, e) # False
get_val(d, f) # 1
if
/ else
可以通过if
/ else
构造一种替代的,更明确的解决方案:
def get_val(A, idx):
if all(i < j for i, j in zip(idx, A.shape)):
return A[tuple(idx)]
return False
由于我们使用tuple(idx)
,所以两种解决方案都适用于任意尺寸。