Я пытаюсь создать список размера n, каждый элемент которого также является списком размера m. После создания списка я выполняю следующую операцию.
matrix=[[0]*m]*n
# matrix = [[0 for i in range(0,m)] for j in range(0,n)]
m=2
n=3
ind=[[0,1][1,1]]
for r,c in ind:
for i in range(m):
matrix[r][i]+=1
for j in range(n):
matrix[j][c]+=1
print(matrix)
Вышеупомянутая операция ищет значение строки и столбца в списке «ind» и увеличивает значение на одну из соответствующих строк и столбцов. .
Проблема в том, что когда я использую инициализацию матрицы как [[0] * m] * n, тогда результат будет другим, и когда я использую matrix = [[0 for i in range (0, m )] для j в диапазоне (0, n)] результат будет правильным. В первом случае значения меняются для всех строк, столбцов, которых быть не должно.
Я попытался указать тип отдельных элементов списка матриц, а также получить тип элемента элемента матрицы с помощью print (type (matrix [0])) и print (type (matrix [0] [0]))
Оба имеют одинаковый тип. Есть идеи, почему результат матрицы отличается для двух разных типов инициализации?
Спасибо за помощь.