On Fri, 05 Feb 2010 09:53:33 -0600, David Thole wrote: > I read this....and am a tiny bit confused about the actual problem. > > It's not exactly complex to realize that something like: a = b = array > that a and b both point to the array. > > Logically speaking, I'm not sure how one could assume that the same > assignment would yield a and b point to the same duplicate array.
It's an easy mistake to make, if you don't understand Python's object model: >>> a = b = 2 >>> a += 1 >>> a, b (3, 2) >>> a = b = [2] >>> a[0] += 1 >>> a, b ([3], [3]) For the non-Python coders reading, the difference is that ints are immutable, and hence a += 1 assigns a to a new int, leaving b untouched, but lists are mutable, hence a[0] += 1 mutates the list which both a and b refer to. This is a Good Thing, but it is one of the things which give newcomers some trouble. -- Steven -- http://mail.python.org/mailman/listinfo/python-list