Compound Assignment Operators ( +=, *=, etc...)

A.M. Kuchling amk at
Sun Aug 15 16:52:21 CEST 1999

On Sun, 15 Aug 1999 03:09:14 -0500, Andrew McDowell <drew at> wrote:
>Why would you confuse x += y (which would seem to imply the former) to mean
>x.extend(y) ?   It _is_ an assignment statement after all..

If you have:
aList = []
bList = aList
aList += [1,2,3]

Do aList and bList still point to the same list?  I think people could
argue for either interpretation as being the most intuitive.

Another thing: if the meaning is taken as "x = x + y", this means that
x+=y is really quite inefficient, which will be confusing to people
who've been indoctrinated to believe that '++' lets the compiler
produce better code.  That may be true for C, but if you coded "for i
in biglist: resultlist += thingy", you'd do a lot of unnecessary list

A.M. Kuchling
We are Brigand Philosophers / Our hearts are high and cheery, / For we know
our robbery rests upon / A sound economic theory!
    -- _The Golden Ass_, music Randolph Peters, libretto Robertson Davies

More information about the Python-list mailing list