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

Wie viele schnelle Schleifenmethoden kennen Sie in Python?

WBOY
Freigeben: 2023-04-13 09:13:06
nach vorne
1853 Leute haben es durchsucht

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

3, Summenbereich

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

4, Summengenerator (Generator)

def sum_range(n=100_000_000):
return sum(range(n))
Nach dem Login kopieren

5, Summenlistenverständnis (Listenverständnis)

def sum_generator(n=100_000_000):
return sum(i for i in range(n))
Nach dem Login kopieren

6, Summennumpy

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

7, Summennumpy Python-Bereich

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

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

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!

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