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

Wie schreibe ich eine gute Python-Schleife?

silencement
silencementOriginal
2019-06-13 16:47:482990Durchsuche

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:

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之禅》

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)

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

result = [do_something_with(item) for item in item_list]

Ä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)

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)

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)

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

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!

Stellungnahme:
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

In Verbindung stehende Artikel

Mehr sehen