Heim  >  Artikel  >  Backend-Entwicklung  >  Wie viele schnelle Schleifenmethoden kennen Sie in Python?

Wie viele schnelle Schleifenmethoden kennen Sie in Python?

WBOY
WBOYnach vorne
2023-04-13 09:13:061822Durchsuche

Hallo zusammen, ich bin somenzz, heute werden wir die schnellste Schleifenmethode in Python studieren.

Verschiedene Haltungen

Zum Beispiel gibt es eine einfache Aufgabe, die darin besteht, 1 bis 100 Millionen zu erreichen. Wir können sie auf mindestens 7 Arten erreichen, die wie folgt aufgeführt sind:

1. while-Schleife

rrree

2. for-Schleife

def while_loop(n=100_000_000):
i = 0
s = 0
while i < n:
s += i
i += 1
return s

3, Summenbereich

def for_loop(n=100_000_000):
s = 0
for i in range(n):
s += i
return s

4, Summengenerator (Generator)

def sum_range(n=100_000_000):
return sum(range(n))

5, Summenlistenverständnis (Listenverständnis)

def sum_generator(n=100_000_000):
return sum(i for i in range(n))

6, Summennumpy

def sum_list_comp(n=100_000_000):
return sum([i for i in range(n)])

7, Summennumpy Python-Bereich

import numpy
def sum_numpy(n=100_000_000):
return numpy.sum(numpy.arange(n, dtype=numpy.int64))

Oben Die mit den 7 Methoden erzielten Ergebnisse sind die gleichen, aber der Zeitaufwand ist unterschiedlich. Sie können erraten, welche Methode die schnellste ist, und sich dann die Ausführungsergebnisse des folgenden Codes ansehen:

import numpy
def sum_numpy_python_range(n=100_000_000):
return numpy.sum(range(n))

Die Ausführungsergebnisse sind wie folgt:

Wie viele schnelle Schleifenmethoden kennen Sie in Python?

Ein schnellerer Weg

for als while block

for und while machen im Wesentlichen das Gleiche, aber while ist reiner Python-Code, während wir für Aufrufe von C-Erweiterungen zum Inkrementieren und Begrenzen von Variablen den CPython-Interpreter kennen ist in C-Sprache geschrieben, Python-Code ist langsamer als C-Code, und die for-Schleife repräsentiert C und die while-Schleife repräsentiert Python, also ist for schneller als while.

numpys integrierte Summe ist schneller als Pythons Summe.

numpy ist hauptsächlich in C geschrieben. Für die gleiche Funktion ist numpy definitiv schneller. Ebenso ist numpys Arange definitiv schneller als Pythons Reichweite.

Kreuzige Verwendung wird langsamer sein

Numpys Summe wird in Kombination mit Pythons Bereich verwendet und das Ergebnis ist das längste, siehe Methode 7. Am besten verwenden Sie das Numpy-Paket, um die Aufgabe abzuschließen, wie bei Methode 6.

Generatoren sind schneller als Listenverständnisse

Generatoren sind langsam und generieren nicht 100 Millionen Zahlen auf einmal, während Listenverständnisse alle Zahlen auf einmal zuweisen, sie sind noch nicht effizient und nutzen sie weniger von Cache, daher ist die Leistung etwas schlechter.

Das obige ist der detaillierte Inhalt vonWie viele schnelle Schleifenmethoden kennen Sie in Python?. 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