Liste von Funktionen mittels List Comprehension erstellen
Verfasst: Mittwoch 30. April 2014, 12:18
				
				Hallo,
ich möchte eine Liste von Funktionen erstellen und scheitere leider, da alle Funktionen in der Liste am Ende identisch sind.
Das Problem ist offenbar, dass 'lambda' erst beim Aufruf den Wert von 'n' abfragt und daher alle Funktionen für das letzte 'n' in der Schleife berechnet werden.
Kann mir jemand helfen?
Grüße
P.S.: Die Definition von f mittels lambda ist hier nicht ausschlaggebend. Man kann x**n auch direkt in die list comprehension schreiben. Auch die Herausnahme von 'range' in N ist für das Problem nicht von Bedeutung. Das Resultat ist das Gleiche, aber so wie oben dargestellt ist das Problem näher an meiner Struktur dran.
			ich möchte eine Liste von Funktionen erstellen und scheitere leider, da alle Funktionen in der Liste am Ende identisch sind.
Code: Alles auswählen
f = lambda x,n: x**n
N = range(4)
l = [lambda x: f(x,n) for n in N]
for g in l:
    print g(2)
Kann mir jemand helfen?
Grüße
P.S.: Die Definition von f mittels lambda ist hier nicht ausschlaggebend. Man kann x**n auch direkt in die list comprehension schreiben. Auch die Herausnahme von 'range' in N ist für das Problem nicht von Bedeutung. Das Resultat ist das Gleiche, aber so wie oben dargestellt ist das Problem näher an meiner Struktur dran.