title: Use value of variable in lambda expression
body: <pre><code>a = [] a.append(lambda x:x**0) 
  a.append(lambda x:x**1)
  
  a[0](2), a[1](2), a[2](2)... spits out 1, 2, 4, ...
  
  b=[]
  for i in range(4)
      b.append(lambda x:x**i)
  
  b[0](2), b[1](2), b[2](2)... spits out 8, 8, 8, ...
  </code></pre>
  
  <p>In the for loop, the i is being passed to lambda as a variable, so when I call it, the last value of i is used instead of the code running as it does with a[]. (ie b[0] should use x^1, b[1] should use x^2, ...)</p>
  
  <p>How can I tell lambda to pick up the value of i instead of the variable i itself.</p>