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()

Ответы на вопрос(3)

Ваш ответ на вопрос