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

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

PHPz
Freigeben: 2023-04-26 15:10:08
nach vorne
1784 Leute haben es durchsucht

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
Nach dem Login kopieren

Lambda-Funktion

lambda x: x*2
Nach dem Login kopieren

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)
Nach dem Login kopieren

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
Nach dem Login kopieren

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]
Nach dem Login kopieren

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)
Nach dem Login kopieren

Wir werden die Filterfunktion verwenden, um Werte unter 10 zu filtern.

def less_than_10(x):
if x < 10:
return x
Nach dem Login kopieren

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]
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren


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!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage