title: Lazy evaluation when use lambda and list comprehension
body: <p>Here is the example python code.</p>
  <pre><code>f_list = [lambda x : x ** i for i in range(5)]
  [f_list[j](10) for j in range(5)]
  </code></pre>
  <p>I thought the output would be:</p>
  <pre><code>[1, 10, 100, 1000, 10000]
  </code></pre>
  <p>But I got this instead:</p>
  <pre><code>[10000, 10000, 10000, 10000, 10000]
  </code></pre>
  <p>I'm wondering what actually happened when I run this code. And what's the connections with lazy evaluation.</p>