Python: Append lambda functions to list

Viewed 10588

Can anyone do sanity check?

I'm trying to make functions in for-loop. The point I can't understand is summarized in the following code:

f_list = []
for i in range(10):
    f = lambda j : i
    f_list.append(f)

Then,

>>> f_list[0](0)
9                  #I hope this is 0.
>>> f_list[1](0)
9                  #I hope this is 1.

Why is this happen??

1 Answers
Related