У меня есть двумерный список со значениями, которые я меняю. Их нужно сохранить в другом двумерном списке (первый список не должен изменяться).
Я пытался установить значения напрямую, но я получаю эту ошибку:
IndexError: список индексов вне диапазона.
Это потому что ничего не копируется в fin_mat
.
Как я могу поместить измененные значения в новый список?
for i, i_it in enumerate(mat):
for j, j_it in enumerate(mat[i]):
fin_mat[i][j] = mat[i-1][j] + mat[i+1][j] + mat[i][j-1] + mat[i][j+1]
UPD: Хорошо, я попытаюсь объяснить.
Программа должна запросить строку и преобразовать ее в список, который был добавлен в другой, чтобы создать двумерный список:
b, st = [], [i for i in input().split()]
mat = []
может быть любым длинным, и чтобы остановить ввод, вы должны написать: "end"
while (st[0] != 'end'):
st = [i for i in input().split()]
b.append(st)
if (st[0] == 'end'):
del b[-1]
Чем вы меняете строковые значения на int
for j in b:
r = [int(item) for item in j]
mat.append(r)
print(mat)
После этого мне нужно создать еще одну матрицу, в которой элементы должны быть определены по этой формуле:
(i-1, j) + (i+1, j) + (i, j-1) + (i, j+1)
= fin_mat [i] [j]
Я не могу просто скопировать первый список и не могу изменить его, потому что значения из первого списка находятся в этой формуле.
Мне нужно добавить значения одно за другим в fin_mat