Ошибка модификации матрицы смежности Python

Когда я создаю список списка для представления матрицы смежности, как

adj_mat = [[0]*6]*6 # for example
adj_mat[1][2] = 1 # concern

Вывод, который я получаю, следующий

[[0, 0, 1, 0, 0, 0],
[0, 0, 1, 0, 0, 0],
[0, 0, 1, 0, 0, 0],
[0, 0, 1, 0, 0, 0],
[0, 0, 1, 0, 0, 0],
[0, 0, 1, 0, 0, 0]]

Но когда я делаю то же самое, что и

adj_mat = [[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]]

После манипуляции

adj_mat[1][2] = 1 # for example

Вывод, который я получаю, выглядит следующим образом

[[0, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0]]

Я не уверен, почему это происходит или какую ошибку я делаю. Пожалуйста, дайте мне знать.

0 ответов

Другие вопросы по тегам