Possible Duplicate:
Use value of variable in lambda expression
I'm working with python and trying to isolate a problem I had with lambda functions.
From the following code I was expecting to create two lambda functions, each getting a different x, and the output should be
1
2
but the output is 2 2
Why? And how can I make two different functions? Using def?
def main():
d = {}
for x in [1,2]:
d[x] = lambda : print(x)
d[1]()
d[2]()
if __name__ == '__main__':
main()