Heim > Backend-Entwicklung > Python-Tutorial > Wie schreibe ich eine gute Python-Schleife?

Wie schreibe ich eine gute Python-Schleife?

silencement
Freigeben: 2019-06-13 16:47:48
Original
3038 Leute haben es durchsucht

Wie schreibe ich eine gute Python-Schleife?

Um eine gute Python-Schleife zu schreiben, benötigen Sie keine for-Anweisung! ! !

Gehen wir zunächst einen Schritt zurück und betrachten die Intuition hinter dem Schreiben einer for-Schleife:

1 Durchlaufen Sie eine Sequenz, um einige Informationen zu extrahieren

2. Generieren Sie eine weitere Sequenz aus der aktuellen Sequenz

3. Das Schreiben für Schleifen ist für mich eine Selbstverständlichkeit, da ich Programmierer bin

Glücklicherweise gibt es in Python großartige Tools, die Ihnen beim Erreichen dieser Ziele helfen! Alles was Sie tun müssen, ist Ihre Meinung zu ändern und die Dinge aus einer anderen Perspektive zu betrachten.

Was haben Sie davon, wenn Sie nicht überall For-Schleifen schreiben?

Weniger Codezeilen

2. Bessere Codelesbarkeit

3. Verwenden Sie nur Einrückungen, um Codetext zu verwalten

Sehen wir uns das Codegerüst unten an:

Sehen Sie sich die Struktur des folgenden Codes an:

# 1
with ...:
    for ...:
        if ...:
            try:
            except:
        else:
Nach dem Login kopieren

In diesem Beispiel werden mehrere verwendet Ebenen von verschachteltem Code, der sehr schwer zu lesen ist. Mir ist in diesem Code aufgefallen, dass er wahllos Einrückungen verwendet, um Verwaltungslogik (mit, Try-Except) und Geschäftslogik (für, wenn) zu vermischen. Wenn Sie sich an die Konvention halten, Einrückungen nur für Verwaltungslogik zu verwenden, sollte die Kerngeschäftslogik sofort entfernt werden.

“扁平结构比嵌套结构更好” – 《Python之禅》
Nach dem Login kopieren

Um eine for-Schleife zu vermeiden, können Sie diese Tools verwenden

1. Listenverständnis/Generatorausdruck

Sehen Sie sich ein einfaches Beispiel an, hauptsächlich dieses Beispiel kompiliert eine neue Sequenz basierend auf einer vorhandenen Sequenz:

result = []
for item in item_list:
    new_item = do_something_with(item)
    result.append(item)
Nach dem Login kopieren

Wenn Sie MapReduce mögen, können Sie Map oder Pythons Listenanalyse verwenden:

result = [do_something_with(item) for item in item_list]
Nach dem Login kopieren

Ähnlich, wenn Sie nur einen Iterator erhalten möchten können Sie einen Generatorausdruck mit nahezu derselben Syntax verwenden. (Wie könnte man sich nicht in die Konsistenz von Python verlieben?)

result = (do_something_with(item) for item in item_list)
Nach dem Login kopieren

Funktionen

Betrachten Sie es auf eine höhere, funktionale Weise, wenn Sie eine Sequenz einer anderen Sequenz zuordnen möchten ruft die Kartenfunktion direkt auf. (Stattdessen können auch Listenverständnisse verwendet werden.)

doubled_list = map(lambda x: x * 2, old_list)
Nach dem Login kopieren

Wenn Sie eine Sequenz auf ein Element reduzieren möchten, verwenden Sie Reduce

from functools import reduce
summation = reduce(lambda x, y: x + y, numbers)
Nach dem Login kopieren

Darüber hinaus ist die große Anzahl integrierter Funktionen in Python vorhanden kann Iteratoren konsumieren:

>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> all(a)
False
>>> any(a)
True
>>> max(a)
9
>>> min(a)
0
>>> list(filter(bool, a))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> set(a)
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> dict(zip(a,a))
{0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}
>>> sorted(a, reverse=True)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> str(a)
'[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]'
>>> sum(a)
45
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie schreibe ich eine gute Python-Schleife?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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