У меня есть список, содержащий n одинаковых матриц 3x3, где n - количество нулей в одной такой матрице.Заменить индекс в списке
В моей первой матрице, я хочу, чтобы заменить первую 0 с целым 2. Во второй матрице, я хочу, чтобы заменить второй 0 с 2. Это продолжается до тех пор, п: й матрицей, где я хочу заменить n: th 0 на 2. Т.е. каждая матрица должна иметь только один индекс.
Мой код до сих пор:
def replaceZero(x):
# Omitted code where I count number of 0 in x
n = 9 # in this example
# Creating a list which holds n matrices
lists = []
for i in range(0,n):
lists.append(x)
# Replacing the i:th 0 with 2
for i in range(0,n):
m = -1
for j in range(0,3):
for k in range(0,3):
if lists[i][j][k] == 0:
m = m + 1
if m == i:
lists[i][j][k] = 2
return lists
# Example of a matrix
x = [[0,0,0],[0,0,0],[0,0,0]]
Я не могу понять, почему он не работает. Хотя, слишком много нулей заменены, и замена одинакова для каждой матрицы.
Я стараюсь увеличивать m
с 1 до тех пор, пока не будет найден нуль. Только тогда, когда m
имеет то же значение, что и индекс текущей матрицы, должна произойти замена.
Просьба представить подробную информацию о том, как "она не работает": то, что вы ожидали , и что вы получили вместо этого. (Показывать, как вы называете свою функцию, тоже будет хорошей идеей.) –
гарантировано, что у вас есть n нулей? – SirParselot
Нет, в конечном итоге аргумент не будет иметь нулей. – Mongzyy