У меня есть эта входная матрица, и я пытаюсь создать эту выходную матрицу.
input = [[1, 1, 1], [1, 0, 1], [1, 1, 1] ]
output = [[1,0,1], [0, 0, 0], [1, 0, 1]]
, когда я вызываю функцию ниже, я получаю строка нулей, как и ожидалось:
output = [[1,1,1], [0,0,0], [1,1,1]]
def setZero(matrix):
for i in range(0, len(matrix)):
for j in range(0, len(matrix[i])):
if(matrix[i][j] == 0):
row = i
col = j
rowCol(matrix, row, col)
return matrix
def rowCol(matrix, row, col):
for i in range(0, len(matrix)):
for j in range(0, len(matrix[i])):
if i == row:
matrix[i][j] = 0
print(setZero(matrix))
, когда I вызовите функцию ниже, я получаю столбец нулей, как и ожидалось:
output = [[1,0,1], [1,0,1], [1,0,1]]
def setZero(matrix):
for i in range(0, len(matrix)):
for j in range(0, len(matrix[i])):
if(matrix[i][j] == 0):
row = i
col = j
rowCol(matrix, row, col)
return matrix
def rowCol(matrix, row, col):
for i in range(0, len(matrix)):
for j in range(0, len(matrix[i])):
if j == col:
matrix[i][j] = 0
print(setZero(matrix))
Однако, когда я комбинирую оба: if i == row or j == col:
, я получаю вывод ниже:
output = [[1, 0, 0], [0, 0, 0], [0, 0 , 0]]
вместо выхода = [[1,0,1], [0, 0, 0], [1, 0, 1]]
def setZero(matrix):
for i in range(0, len(matrix)):
for j in range(0, len(matrix[i])):
if(matrix[i][j] == 0):
row = i
col = j
rowCol(matrix, row, col)
return matrix
def rowCol(matrix, row, col):
for i in range(0, len(matrix)):
for j in range(0, len(matrix[i])):
if i == row or j == col:
matrix[i][j] = 0
print(setZero(matrix))
Почему это происходит ??