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?