Ich muss Funktionen in einem Wörterbuch, jede Funktion abhängig von seinem Schlüssel speichern, sagen wir, für einen Schlüssel 1
die Lambda-Funktion zugeordnet ist lambda s: s * A[1]
. Ich habe versucht mit dict Verständnis, aber es scheint, dass die Inline-Funktionen endet mit dem letzten Wert der Schleife definiert.Wörterbuch Verständnis mit Inline-Funktionen
d = {k, lambda s: s * A[k] for k in range(n)} # e.g. n = 4
Danach werden alle mit A[3]
erstellt Lambda-Funktionen deklariert werden, statt A[0], A[1], A[2]
und A[3]
. Was ist mit diesem Code falsch?
zumindest der Druck des Objekts erzeugt wird, ist in der Tat vier Funktionen mit vier Tasten, 0, 1, 2, 3. Der Doc von dict Verständnis sagt, dass dies richtig sein sould ... Ich denke, https: //www.python.org/dev/peps/pep-0274/ –
Nur neugierig, wofür du das benutzt und was wären A und s? – Scott
Es ist eine gemeinsame Sache. http://docs.python-guide.org/en/latest/writing/gotchas/#late-binding-closures – Alik