Heim >Backend-Entwicklung >Python-Tutorial >Sollten Sie List Comprehensions für Nebenwirkungen in Python verwenden?
Sollten List Comprehensions für Nebenwirkungen in Python verwendet werden?
In Python werden Funktionen oft wegen ihrer Nebenwirkungen und nicht wegen ihrer Rückkehr aufgerufen Werte. Zu solchen Nebenwirkungen können das Drucken auf dem Bildschirm, das Aktualisieren einer grafischen Benutzeroberfläche oder das Schreiben in eine Datei gehören.
Wenn es darum geht, Funktionen mit Nebenwirkungen mithilfe von Listenverständnissen aufzurufen, gibt es zwei allgemeine Ansätze:
Ansatz 1: Listenverständnis für Nebenwirkungen
[fun_with_side_effects(x) for x in y if (...conditions...)]
Ansatz 2: Bedingungsschleife
for x in y: if (...conditions...): fun_with_side_effects(x)
Es stellt sich die Frage: Welcher Ansatz ist pythonischer?
Antwort: Ansatz 2 wird dringend empfohlen
Von der Verwendung von Listenverständnissen für Nebenwirkungen wird in Python dringend abgeraten. Der Hauptgrund dafür ist die unnötige Erstellung einer Zwischenliste. Diese Liste wird sofort nach ihrer Erstellung verworfen, was eine erhebliche Ressourcenverschwendung darstellen kann, wenn die Liste groß ist.
Im Gegensatz dazu entstehen beim Bedingungsschleifen-Ansatz keine unnötigen Datenstrukturen. Es wertet jedes Element in der Eingabeliste direkt aus und minimiert so möglicherweise den Overhead.
Das obige ist der detaillierte Inhalt vonSollten Sie List Comprehensions für Nebenwirkungen in Python verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!