title: How (in)efficient is a list comprehension if you don't assign it?
body: <p><a href="https://stackoverflow.com/a/11968881/34088">In this question</a>, I'm having an argument with a commenter who argues that</p>
  
  <pre><code>for t in threads:
      t.join()
  </code></pre>
  
  <p>would be better than</p>
  
  <pre><code>[t.join() for t in threads]
  </code></pre>
  
  <p>Leaving the matter of "abusing comprehensions" aside - I tend to agree but I would like a one-liner for this: How (in-)efficient is my version (the second one) really?. Does Python materialize list comprehensions always / in my case or does it use a generator internally?</p>
  
  <p>Would <code>map(lambda t: t.join(), threads)</code> be more efficient? Or is there another way to apply the function to each element in the list <code>threads</code>?</p>