title: Python append() vs. + operator on lists, why do these give different results?
body: <p>Why do these two operations (<code>append()</code> resp. <code>+</code>) give different results?</p>
  
  <pre><code>&gt;&gt;&gt; c = [1, 2, 3]
  &gt;&gt;&gt; c
  [1, 2, 3]
  &gt;&gt;&gt; c += c
  &gt;&gt;&gt; c
  [1, 2, 3, 1, 2, 3]
  &gt;&gt;&gt; c = [1, 2, 3]
  &gt;&gt;&gt; c.append(c)
  &gt;&gt;&gt; c
  [1, 2, 3, [...]]
  &gt;&gt;&gt; 
  </code></pre>
  
  <p>In the last case there's actually an infinite recursion. <code>c[-1]</code> and <code>c</code> are the same. Why is it different with the <code>+</code> operation?</p>