G
Gabriel Zachmann
Well,
could some kind soul please explain to me why the following trivial code
is misbehaving?
#!/usr/bin/python
s = []
l = [ 0 ]
r = [0, 0]
while r:
x = (l,r)
print x
s.append( x )
l.append( r.pop(0) )
print s
The output I get is:
([0], [0, 0])
([0, 0], [0])
[([0, 0, 0], []), ([0, 0, 0], [])]
and the error is in the last line: the two pairs in the outer list are
identical and they should be equal to the pairs one the first and the
2nd line, respectively! Shouldn't they?
I think I'm going nuts -- for the life of me I don't see what's going on ...
Thanks a lot in advance for any insights, etc.
Best regards,
Gabriel.
could some kind soul please explain to me why the following trivial code
is misbehaving?
#!/usr/bin/python
s = []
l = [ 0 ]
r = [0, 0]
while r:
x = (l,r)
print x
s.append( x )
l.append( r.pop(0) )
print s
The output I get is:
([0], [0, 0])
([0, 0], [0])
[([0, 0, 0], []), ([0, 0, 0], [])]
and the error is in the last line: the two pairs in the outer list are
identical and they should be equal to the pairs one the first and the
2nd line, respectively! Shouldn't they?
I think I'm going nuts -- for the life of me I don't see what's going on ...
Thanks a lot in advance for any insights, etc.
Best regards,
Gabriel.