Listenverständnisse für Nebenwirkungen: Ein pythonischer Ansatz
In Python werden Listenverständnisse häufig verwendet, um neue Listen aus vorhandenen Sequenzen zu erstellen. Es kann jedoch verlockend sein, Listenverständnisse wegen ihrer Nebeneffekte zu verwenden, wie zum Beispiel das Drucken auf dem Bildschirm oder das Aktualisieren einer grafischen Benutzeroberfläche.
Betrachten Sie die folgende Funktion, die Nebeneffekte ausführt, aber keine aussagekräftigen Werte zurückgibt :
def fun_with_side_effects(x): # ...side effects... return None
Es stellt sich die Frage: Ist es Pythonic, diese Funktion mithilfe einer Liste aufzurufen? Verständnisse?
[fun_with_side_effects(x) for x in y if (...conditions...)]
Alternativ könnte man die Funktion mithilfe einer Standard-for-Schleife aufrufen:
for x in y: if (...conditions...): fun_with_side_effects(x)
Während Listenverständnisse wie eine prägnante und effiziente Lösung erscheinen mögen, gelten sie als anti- Pythonisch in diesem Zusammenhang. Dies liegt daran, dass die Zwischenliste erstellt und unmittelbar danach verworfen wird, was sowohl verschwenderisch als auch rechenintensiv sein kann, insbesondere wenn die Sequenz groß ist.
Der for-Schleifenansatz ist eher pythonisch, da er die Erstellung einer vermeidet unnötige Liste. Es ist auch effizienter, da fun_with_side_effects nur bei Bedarf aufgerufen wird.
Daher wird empfohlen, beim Aufrufen von Funktionen mit Nebenwirkungen die for-Schleifensyntax zu verwenden. Dieser Ansatz folgt den Pythonic-Prinzipien und gewährleistet Codeeffizienz.
Das obige ist der detaillierte Inhalt vonGilt die Verwendung von Listenverständnissen für Nebenwirkungen in Python als pythonisch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!