title: Python concatenation vs append speed on lists
body: <p>Taking this snippet from interactivepython.org:</p>
  
  <pre><code>def test1():  # concat
      l = []
      for i in range(1000):
          l = l + [i]
  
  def test2():  # append
      l = []
      for i in range(1000):
          l.append(i)
  </code></pre>
  
  <hr>
  
  <pre><code>concat  6.54352807999 milliseconds
  append  0.306292057037 milliseconds
  </code></pre>
  
  <p>Where the bottom block is the run time. </p>
  
  <p>It says concatenation is O(k), where k is the "length of the list being concatenated". I'm not sure if this means the list you are adding to (original), or the list you are going to be adding. But in both these loops it seems like you are just performing 1 step per iteration. So why is append so much faster?</p>