1

I have created this simple 5x5 matrix in python but when I try to modify one cell, eg. a[1][1], it modifies the first element of every row.

a = [[False] * 5] * 5
print("Original matrix : \n", a)
a[1][1] = True
print("Modified : \n", a)

I get the output as :

Original matrix : 
 [[False, False, False, False, False], [False, False, False, False, False], [False, False, False, False, False], [False, False, False, False, False], [False, False, False, False, False]]
Modified : 
 [[False, True, False, False, False], [False, True, False, False, False], [False, True, False, False, False], [False, True, False, False, False], [False, True, False, False, False]]

Does python ignore the second dimension? Why does this happen?

0 Answers0