Создание списка функций в Python

У меня есть следующий код Python, который генерирует список анонимных функций:

basis = [ (lambda x: n*x) for n in [0, 1, 2] ]     
print basis[0](1)

Я ожидал, что он будет эквивалентен

basis = [ (lambda x: 0*x), (lambda x: 1*x), (lambda x: 2*x) ]
print basis[0](1)

Однако, в то время как второй фрагмент выводит 0, чего я и ожидал, первый выводит 2. Что не так с первым фрагментом кода и почему он не ведет себя должным образом?

5
задан Zero Piraeus 11 May 2013 в 18:36
поделиться