Я попробовал следующий код в Python 3.5.1:
>>> f = {x: (lambda y: x) for x in range(10)}
>>> f[5](3)
9
Очевидно, что это должно возвращать 5
. Я не понимаю, откуда приходит другая ценность, и я ничего не смог найти.
Кажется, что это связано с ссылкой - он всегда возвращает ответ f[9]
, который является последней назначенной функцией.
Какая ошибка здесь и как это сделать, чтобы она работала правильно?