Wir wissen, dass die Verwendung von Schleifen in Python sehr langsam ist. Was sollten Sie tun, wenn Sie mit einer ähnlichen Situation konfrontiert sind?
In diesem Artikel werde ich Methoden und Fälle mit Ihnen teilen, die zum Ersetzen von Python-Schleifen verwendet werden können:
Bevor Sie mit der Verwendung der oben genannten Funktionen beginnen, falls dies der Fall ist Wenn Sie mit Lambda-Funktionen nicht vertraut sind, werfen wir einen kurzen Blick darauf.
Lambda-Funktionen sind eine Alternative zu regulären Funktionen. Es kann in einer Codezeile definiert werden und nimmt daher in unserem Code weniger Zeit und Platz ein. Im folgenden Code können wir beispielsweise die Lambda-Funktion in Aktion sehen.
def multiply_by_2(x): x*2
Lambda-Funktion
lambda x: x*2
Hinweis: Es ist besser, die Lambda-Funktion anstelle der regulären Funktion zu verwenden.
Mit der Map-Funktion können wir die Funktion auf jeden Wert des iterierbaren Objekts (Liste, Tupel usw.) anwenden.
map(function, iterable)
Angenommen, wir möchten eine Quadratzahl in einer Liste (iterierbares Objekt) erhalten. Wir erstellen zunächst eine Funktion quadrat(), um das Quadrat einer Zahl zu ermitteln.
def square(x): return x*x
Wir werden dann die Map-Funktion verwenden, um die Funktion quadrat() auf die Eingabeliste von Zahlen anzuwenden.
input_list = [2, 3, 4, 5, 6] # Without lambda result = map(square, input_list) # Using lambda function result = map(lambda x: x*x, input_list) # converting the numbers into a list list(result) # Output: [4, 9, 16, 25, 36]
Intuitiv wird die Filterfunktion verwendet, um Werte aus iterierbaren Objekten (Listen, Tupel, Mengen usw.) herauszufiltern. Filterbedingungen werden innerhalb der Funktion festgelegt, die als Parameter an die Filterfunktion übergeben wird.
filter(function, iterable)
Wir werden die Filterfunktion verwenden, um Werte unter 10 zu filtern.
def less_than_10(x): if x < 10: return x
Wir werden dann die Filterfunktion verwenden, um die Funktion less_than_10() auf die Werteliste anzuwenden.
input_list = [2, 3, 4, 5, 10, 12, 14] # Without lambda list(filter(less_than_10, input_list)) # using lambda function list(filter(lambda x: x < 10, input_list)) # Output: [2, 3, 4, 5]
Die Reduzierfunktion unterscheidet sich ein wenig von den Karten- und Filterfunktionen. Es wird iterativ auf alle Werte des Iterables angewendet und gibt nur einen Wert zurück.
Im folgenden Beispiel wird die Zahlenliste durch Anwendung der Additionsfunktion reduziert. Die endgültige Ausgabe ist die Summe aller Zahlen in der Liste, also 15. Lassen Sie uns eine Addition()-Funktion erstellen, die zwei Eingabezahlen addiert.
def addition(x,y): return x + y
Als nächstes wenden wir diese Additionsfunktion als Argument auf die Reduzierungsfunktion an, um die Summe aller Zahlen in der Liste zu erhalten.
from functools import reduce input_list = [1, 2, 3, 4, 5] # Without Lambda function reduce(addition, input_list)) # With Lambda function reduce(lambda x,y: x+y, input_list)) # Output: 15
Das obige ist der detaillierte Inhalt vonPython-Programmierung: Hervorragende Möglichkeiten, Schleifen zu vermeiden!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!