title: Why does this return a list of generator objects?
body: <p>lets say I have some code:</p>
  
  <pre><code>a= {'first': 2, 'second': 3}
  b = {'first':4, 'second': 6}
  c=[a,b]
  d = ['first', 'second']
  q = [(item[col] for col in d) for item in c]
  </code></pre>
  
  <p>for some reason (despite looking around stackoverflow) q continues to be a list of generator objects</p>
  
  <pre><code>print q
  [&lt;generator object &lt;genexpr&gt; at 0x0000000002875750&gt;, &lt;generator object &lt;genexpr&gt; at 0x0000000002875798&gt;]
  </code></pre>
  
  <p>however when I just do a basic iteration:</p>
  
  <pre><code>x = []
  for item in c:
  y = []
  for col in d:
      y.append(item[col])
  
  x.append(tuple(y))
  </code></pre>
  
  <p>I get the expected values:</p>
  
  <pre><code>print x
  [(2, 3), (4, 6)]
  </code></pre>
  
  <p>Why doesn't the first way return the same as the second?  I don't see the difference.  thanks- </p>