Heim  >  Artikel  >  Backend-Entwicklung  >  Python-Programmierung: Hervorragende Möglichkeiten, Schleifen zu vermeiden!

Python-Programmierung: Hervorragende Möglichkeiten, Schleifen zu vermeiden!

PHPz
PHPznach vorne
2023-04-26 15:10:081718Durchsuche

Wir wissen, dass die Verwendung von Schleifen in Python sehr langsam ist. Was sollten Sie tun, wenn Sie mit einer ähnlichen Situation konfrontiert sind?

不要在 Python 中使用循环,这些方法其实更棒!

In diesem Artikel werde ich Methoden und Fälle mit Ihnen teilen, die zum Ersetzen von Python-Schleifen verwendet werden können:

  • Map
  • Filter
  • Reduce

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.

1. Map

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]

2. Filter

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]

3. Reduzieren

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. 不要在 Python 中使用循环,这些方法其实更棒!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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen