Я пытаюсь создать функцию, которая получает список, представляющий матрицу, и возвращает умноженную новую матрицу на полученное число (скаляр). Старая матрица должна остаться без изменений.
Я пытаюсь это сделать:
def mul_mat_by_scalar(mat, alpha):
new_mat = mat[:]
for row in range(len(mat)):
for col in range(len(mat[row])):
new_mat[row][col] = alpha * mat[row][col]
return new_mat
, но кажется, что мат тоже изменился. Я думаю, что new_mat - это новый объект списка, который ссылается на те же «подсписки» в mat, поэтому mat изменяется, потому что изменяются его подсписки.
Я прав? Как я могу это исправить?
Заранее спасибо.
РЕДАКТИРОВАТЬ:
Я нашел решение для копирования матрицы:
new_mat = [row[:] for row in mat]
Спасибо в любом случае !