Frank Millman wrote: > So it looks as if x += [] modifies the list in place, while x = x + [] > creates a new list.
objects can override the += operator (by defining the __iadd__ method), and the list type maps __iadd__ to extend. other containers may treat += differently, but in-place behaviour is recommended by the language reference: An augmented assignment expression like x += 1 can be rewritten as x = x + 1 to achieve a similar, but not exactly equal effect. In the augmented version, x is only evaluated once. Also, when possible, the actual operation is performed in-place, meaning that rather than creating a new object and assigning that to the target, the old object is modified instead. </F> -- http://mail.python.org/mailman/listinfo/python-list