title: Python's [<generator expression>] at least 3x faster than list(<generator expression>)?
body: <p>It appears that using [] around a generator expression (test1) behaves substantially better than putting it inside of list() (test2).  The slowdown isn't there when I simply pass a list into list() for shallow copy (test3).  Why is this?</p>
  
  <p>Evidence:</p>
  
  <pre><code>from timeit import Timer
  
  t1 = Timer("test1()", "from __main__ import test1")
  t2 = Timer("test2()", "from __main__ import test2")
  t3 = Timer("test3()", "from __main__ import test3")
  
  x = [34534534, 23423523, 77645645, 345346]
  
  def test1():
      [e for e in x]
  
  print t1.timeit()
  #0.552290201187
  
  
  def test2():
      list(e for e in x)
  
  print t2.timeit()
  #2.38739395142
  
  def test3():
      list(x)
  
  print t3.timeit()
  #0.515818119049
  </code></pre>
  
  <p>Machine: 64 bit AMD, Ubuntu 8.04, Python 2.7 (r27:82500)</p>