I was wondering, if someone could explain this behavior in python while initializing matrix in python in the following way
rows,cols = 3,3
visited = [[False]*rows]*cols
visited[0][0] = True
print visited
[[True, False, False], [True, False, False], [True, False, False]]
As apposed to
visited = []
for i in range(rows):
visited.append([False]*cols)
visited[0][0] = True
print visited
[[True, False, False], [False, False, False], [False, False, False]]
I am not sure, why in the first case all the elements of first col gets initialized to true.