Python 我写的代码有问题,为了得到每个非零元素和0到0的矩阵的逆
我对编程完全陌生,我编写了这个函数来获取一个矩阵,并在python中将每个非零元素映射到它的逆元素和从零到零。这是我的密码:Python 我写的代码有问题,为了得到每个非零元素和0到0的矩阵的逆,python,Python,我对编程完全陌生,我编写了这个函数来获取一个矩阵,并在python中将每个非零元素映射到它的逆元素和从零到零。这是我的密码: def question_1_c(arr): new_arr = [] for i in range(len(arr)): row_arr = [] for j in range(len(arr[i])): row_arr.append(1/ arr[i][j]) new_arr.ap
def question_1_c(arr):
new_arr = []
for i in range(len(arr)):
row_arr = []
for j in range(len(arr[i])):
row_arr.append(1/ arr[i][j])
new_arr.append(row_arr)
return new_arr
question_1_c([[70,0,13,67],[90,48,57,26],[43,45,67,89],[88,65,44,23]])
由于某种原因,它给出了一个错误。有人能帮忙吗?我得到的错误是被零除,这很有意义,因为你从来没有检查过零值。你也在做整数除法——这不会达到你期望的效果
def question_1_c(arr):
new_arr = []
for row in arr:
row_arr = []
for val in row:
if val:
row_arr.append(1.0/val)
else:
row_arr.append(val)
new_arr.append(row_arr)
return new_arr
此外,在Python中,您可以迭代集合。我已经重写了你的代码,这应该是你所期望的
def question_1_c(arr):
new_arr = []
for row in arr:
row_arr = []
for val in row:
if val:
row_arr.append(1.0/val)
else:
row_arr.append(val)
new_arr.append(row_arr)
return new_arr
数组在[0,1]位置有一个0值。。。所以在 1/arr[i][j]该计划应: 1/0,并引发异常 你必须考虑这个案子这样做:
if arr[i][j]==0:
...
else:
row_arr.append(1/ arr[i][j])
您是否正在代码中处理0案例?你在哪里得到了什么错误?它给了你什么错误?请发布完整的回溯。