+= on lists is an annoying one:<p><pre><code>    def myfunc(mylist):
        mylist += [1,2,3]
</code></pre>
is NOT the same as:<p><pre><code>    def myfunc(mylist):
        mylist = mylist + [1,2,3]
</code></pre>
Try this on each of those definitions:<p><pre><code>    a = [4,5,6]
    myfunc(a)
    print a
</code></pre>
The first one mutates &#x27;a&#x27;, the second only reassigns (and discards) a temporary `mylist`.<p>Put another way, += is <i>not</i> just syntactic sugar. With lists, it actually mutates the original list.