list assignment using concatenation "*"
liquid
liquidfart at gmail.com
Fri Feb 24 20:59:34 EST 2006
If I do:
a = [ [0,0,0], [0,0,0], [0,0,0] ]
a[0][1] = 1
I get:
a = [ [0,1,0],[0,0,0],[0,0,0] ]
as expected
But if I do:
a = [ [0] * 3 ] * 3
a[0][1] = 1
I get
a = [[0,1,0],[0,1,0],[0,1,0]]
AFAIC, "*" is supposed to generate multiple copies of the given token.
Therefore I thought both cases would be the same, but they are not.
Can anyone explain to me what exactly is going on in the second case?
More information about the Python-list
mailing list