New submission from Marvin Mundry marvin@gmx.de:
m1=[[0,0,0,0]]*4
m1
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
m1[0][0]+=1
m1
[[1, 0, 0, 0], [1, 0, 0, 0], [1, 0, 0, 0], [1, 0, 0, 0]]
after initializing an array of arrays as done in the first line of the code
snippet all
Antoine Pitrou pit...@free.fr added the comment:
That's expected behaviour, syntactically. Multiplying a sequence doesn't
deep-copy its elements.
If you want an array of distinct arrays, just write:
m1 = [[0,0,0,0] for i in range(4)]
m1[1][0] = 6
m1
[[0, 0, 0, 0], [6, 0, 0, 0], [0, 0, 0,