On 2005-05-08, andrea crotti wrote: > I have a little "problem", I don't understand the reason of this:
> a = [10,1,2,3] > def foo(): > global a > for el in a: > el = el*2 Simple data types (as integer) are _not_ implemented as references as you obviously expected. Instead el is copied by value from each a[n]. Thus you only changed temporary copies. The whole list instead _is_ a reference. If you write b = a b[0] = 57 a[0] will be effected too. > This doesn't make any difference, if I do > def foo(): > global a > a[0] = 4 That should alter a[0]. > But > > def foo(): > global a > for n in range(len(a)): > a[n] = a[n]*2 > > Doesn't work either... It does. Test it again. Bernd -- Those who desire to give up freedom in order to gain security, will not have, nor do they deserve, either one. [T. Jefferson] -- http://mail.python.org/mailman/listinfo/python-list