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