Dictionary Verständnis mit Lambda-Funktionen gibt falsche Ergebnisse

Ich habe den folgenden Code in Python 3.5.1 ausprobiert:

>>> f = {x: (lambda y: x) for x in range(10)}
>>> f[5](3)
9

Es ist offensichtlich, dass dies zurückkehren sollte5. Ich verstehe nicht, woher der andere Wert kommt, und ich konnte nichts finden.

Es scheint, als ob es sich um eine Referenz handelt - es gibt immer die Antwort von @ zurüf[9], das ist die letzte zugewiesene Funktion.

Was ist der Fehler hier und wie soll das gemacht werden, damit es richtig funktioniert?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage