Hello everyone Consider the following
>>> l = [1,2] >>> for i in l: ... i = i + 1 ... >>> l [1, 2] I understand (I think!) that this is due to the fact that in Python what looks like "assignment" really is binding a name to an object. The result is that inside the loop I am creating an object with value (i+1) and then "pointing" the name i at it. Therefore, the object to which i previously pointed (an element of list l) remains unchanged. Two brief questions: 1) Is what I wrote above (minimally) correct? 2) Independently of the answer to 1, is there a way for me to assign to elements of a list inside a loop and without resorting to C-style ugliness of for i in range(len(l)) l[i] = l[i] + 1 ? (Note: not using a list comprehension.) Thanks in advance Mack -- http://mail.python.org/mailman/listinfo/python-list