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!