Python лямбда не запоминает аргумент для цикла [duplicate]
Possible Duplicate:
Use value of variable in lambda expression
Я работаю с python и пытаюсь выделить проблему, которая была у меня с лямбда-функциями.
Из следующего кода я ожидал создать две лямбда-функции, каждая из которых получит разные x, и результат должен быть
1
2
but the output is 2 2
Зачем? И как я могу сделать две разные функции? Используя def?
def main():
d = {}
for x in [1,2]:
d[x] = lambda : print(x)
d[1]()
d[2]()
if __name__ == '__main__':
main()