I am trying to change diagonal elements of a null matrix to 1
.
So when I formed a matrix by using multiplying list elements [ [ 0 ] * 4 ] * 4
and changed its Diagonal elements to 1
, It changed all elements to 1
.
But when I formed a matrix by using List comprehensions and changed its Diagonal elements to 1
, It worked correctly. Below is the implementations mentioned above:
mat1 = [ [ 0 for i in range(4) ] for j in range( 4 ) ] # Using List Comprehensions
mat2 = [ [ 0 ] * 4 ] * 4 # Using multiplying list elements
print( mat1 == mat2 ) # True
for i in range(4):
mat1[ i ][ i ]=1 # mat1 = [ [1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1] ]
mat2[ i ][ i ]=1 # mat2 = [ [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1] ]
Where I am doing wrong while using matrix formed by multiplying list elements? Or I am misleading some concepts?
Any explanation is appreciated!
Thank you.