In Python, one bug that often bites me is this:
(example A) aList = [1,2,3] for i in aList: i += 1 print aList --> [1,2,3]
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.
This goes against my intuition, which is that aList == [2,3,4], probably because so much in Python is passed by reference and not by value. Of course I can always use range() or enumerate():
I tend to use list comprehensions for this:
aList = [elem+1 for elem in aList]
but it's barely shorter than the explicit loop, so not necessarily an improvement from that point of view. But at least it prevents the bug from biting :).
Yours,
Andrei
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor