[PYTHON] Ich möchte eine lokale Variable mit Lambda binden

Nicht das was ich erwartet habe ...

>>> funcs = []
>>> for fruit in [ 'apple', 'orange', 'banana' ]:
...     funcs.append(lambda: 'I like ' + fruit)
... 
>>> for f in funcs:
...     print f()
... 
I like banana
I like banana
I like banana

Pythons Lambda löst den Namen der Variablen zum Zeitpunkt des Aufrufs auf, sodass sie zum Zeitpunkt der Ausführung zu "Frucht" (= "Banane") wird.

Lösung

Ändern Sie Lambda: 'Ich mag' + Obst in Lambda Frucht = Obst: 'Ich mag' + Obst.

Ich denke, dass es Standard ist, funktional mit Funktionen höherer Ordnung zu lösen, aber wenn es ↑ ist, ist es gut, mit einem Einzeiler zu arbeiten. (^ ◇ ^)

>>> funcs = []
>>> for fruit in [ 'apple', 'orange', 'banana' ]:
...     funcs.append(lambda fruit=fruit: 'I like ' + fruit)
... 
>>> for f in funcs:
...     print f()
... 
I like apple
I like orange
I like banana

Recommended Posts

Ich möchte eine lokale Variable mit Lambda binden
Ich möchte mit Python in eine Datei schreiben
Ich möchte eine Variable in einen Python-String einbetten
Ich möchte mit einem Knopf am Kolben übergehen
Ich möchte mit verstärkendem Lernen einen Berg besteigen
Ich möchte mit einem Roboter in Python arbeiten.
Ich möchte eine Zeichenkette mit Hiragana teilen
Ich möchte Lambda mit Python auf Mac AWS!
Ich möchte manuell eine Legende mit matplotlib erstellen
Ich möchte einen Quantencomputer mit Python betreiben
Ich möchte ○○ mit Pandas machen
Ich möchte mit Python debuggen
Ich möchte einen Blog-Editor mit dem Administrator von Django erstellen
Ich möchte eine Jupyter-Umgebung mit einem Befehl starten
Ich möchte ein Klickmakro mit pyautogui (Wunsch) erstellen.
Ich möchte eine virtuelle Umgebung mit Jupyter Notebook verwenden!
Ich möchte das Paket aus den Anforderungen.txt mit Poesie installieren
[Visualisierung] Ich möchte mit Plotly ein schönes Diagramm zeichnen
Ich möchte einen Platzhalter verwenden, den ich mit Python entfernen möchte
Ich möchte in der Einschlussnotation drucken
Ich möchte den vollständigen Text mit elasticsearch + python durchsuchen
Ich möchte Protokolle mit Python analysieren
Ich möchte mit aws mit Python spielen
[Einführung] Ich möchte mit Python einen Mastodon-Bot erstellen! 【Anfänger】
Ich habe versucht, "Sakurai-san" LINE BOT mit API Gateway + Lambda zu erstellen
Ich möchte Matplotlib zu einem dunklen Thema machen
Ich möchte einfach ein Rauschmodell erstellen
Ich möchte MATLAB feval mit Python verwenden
Ich möchte einen DataFrame in MSSQL einfügen
Ich möchte datetime.datetime.now () auch mit pytest verspotten!
Ich möchte mehrere Bilder mit matplotlib anzeigen.
Ich möchte 100 Datenwissenschaften mit Colaboratory schlagen
Ich möchte OREMO mit setParam sein!
Ich möchte Temporäres Verzeichnis mit Python2 verwenden
Ich möchte -inf nicht mit np.log verwenden
#Unresolved Ich möchte Gobject-Introspection mit Python3 kompilieren
Ich möchte eine Art von Implementierung erstellen, die angeschlossen werden kann
Ich möchte ip vrf mit SONiC verwenden
Ich möchte APG4b mit Python lösen (Kapitel 2)
Ich möchte mit Djangos Migrate von vorne beginnen
Ich möchte leicht einen leckeren Laden finden
Ich möchte eine Django-App auf Heroku hochladen
Ich möchte nur verschiedene Zeilen der Textdatei mit diff anzeigen
Ich möchte ein Element mit numpy in eine Datei schreiben und es überprüfen.
Als ich mit VScode eine Verbindung zu einem entfernten Jupyter-Server herstellte, war dieser entfernt, aber lokal.
Ich möchte ein Bild mit Lollipop in WebP konvertieren
Ich möchte Timeout einfach in Python implementieren
Ich möchte einen Python-Generator viele Male iterieren
Ich möchte, dass DQN Puniki einen Homerun macht
Ich möchte mit Jubatus (1) eine nicht autorisierte Anmeldung bei Facebook erkennen.
100 Klopfen bei der Bildverarbeitung !! (021-030) Ich möchte eine Pause machen ...
Ich möchte einem Pandas-Datenrahmen eine group_id geben
Ich möchte schnell UUID generieren (Gedenknotiz) ~ Python Edition ~
Ich möchte die Optimierung mit Python und CPlex behandeln
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Ich möchte ein beliebtes Paket auf PyPi finden
Ich möchte eine Datei mit Python zufällig testen
Ich möchte mit Python-Datenklasse nach hinten erben