Andrei wrote:
Numbers are immutable, so the element 1 can't change into a 2 inside the list. If 1 was not immutable, e.g. a list you could modify it and then it would be "updated" in the original list too.

It doesn't have anything to do with mutability, only the scope of i. Consider a list of lists (lists are mutable):


py> l = [[1], [2], [3]]
py> for i in l:
        i = [0]

py> print l
[[1], [2], [3]]

Notice that even though each i (list) is mutable, rebinding the name i in the loop has no effect on the list.

I tend to use list comprehensions for this:

aList = [elem+1 for elem in aList]

This is probably the best solution, provided that the operation you want to perform on each element is simple enough to fit in an expression. Even then, just put the operation into a function.


--
Brian Beck
Adventurer

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to