Я пытаюсь вычислить транспонирование матрицы, которая у меня есть в виде списка списков. Исходная матрица m n, я создал матрицу n m. Проблема появляется когда начинаю использовать вложенный l oop.
m = 0
for i in range(0, rows):
for j in range(0, columns):
final1[j][i] = m
print(final1)
m += 1
Я намеренно распечатываю весь список списков (окончательный), чтобы увидеть, как на каждом шаге меняются мои значения, также я просто назначаю последующие натуральные числа для простоты. я вижу (первые 4 строки вывода)
[[0, None, None, None], [0, None, None, None], [0, None, None, None]]
[[1, None, None, None], [1, None, None, None], [1, None, None, None]]
[[2, None, None, None], [2, None, None, None], [2, None, None, None]]
[[2, 3, None, None], [2, 3, None, None], [2, 3, None, None]]
Итак, получив доступ к final [j] [i], в позиции j = 0, i = 0 значения final [1] [0 ] и final [2] [0] также меняются. Как этого избежать? и сделайте первые 4 строки этого формата:
[[0, None, None, None], [None, None, None, None], [None, None, None, None]]
[[0, None, None, None], [1, None, None, None], [None, None, None, None]]
[[0, None, None, None], [1, None, None, None], [2, None, None, None]]
[[0, 3, None, None], [1, None, None, None], [2, None, None, None]]
rows = int(input())
columns = int(input())
final1 = [[None] * rows] * columns
Так я объявляю final1