Hallo zusammen, ich bin somenzz, heute werden wir die schnellste Schleifenmethode in Python studieren.
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:
def while_loop(n=100_000_000): i = 0 s = 0 while i < n: s += i i += 1 return s
def for_loop(n=100_000_000): s = 0 for i in range(n): s += i return s
def sum_range(n=100_000_000): return sum(range(n))
def sum_generator(n=100_000_000): return sum(i for i in range(n))
def sum_list_comp(n=100_000_000): return sum([i for i in range(n)])
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:
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.
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.
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 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!