Listen Sie die Verständnisse in Python auf

Listen Sie die Verständnisse in Python auf
In Python werden häufig Verständnissen verwendet. In diesem Artikel wird erklärt.

Für Schleife in Python

A für die Schleifenanweisung in Python iteriert nacheinander die Mitglieder eines Objekts, der Liste, der String usw. Im Vergleich zu anderen Programmiersprachen ist seine Syntax viel sauberer und erfordert keine manuell definierenden Iterationsschritte und Start -Iteration. Obwohl es Möglichkeiten gibt, sein Verhalten genauso zu gestalten wie andere Programmiersprachen (werden in diesem Artikel nicht behandelt). Sie können auch eine gewisse Kontrolle über Schleifen ausüben, indem Sie Aussagen wie Fortsetzung, Break, Pass usw. verwenden. Unten finden Sie ein einfaches Beispiel für die Schleife in Python:

für x im Bereich (10):
Druck (x)

Die für die obige Schleife druckt zehn Zahlen ab 0 und endet bei 9.

Listen Sie Verständnisse auf

Das Listenverständnis ist nichts anderes als eine Kurz- / kurze Möglichkeit, Multi-Line für Schleifen in einer One-Liner-Anweisung zu schreiben. Das folgende Beispiel für das Listenverständnis erstellt eine neue Liste als [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], indem alle Werte von „X“ in sie einbezogen werden.

Zahlen = [x für x im Bereich (10)]
Druck (Zahlen)

Beachten Sie, dass das Listenverständnis immer eine neue Liste erstellt und die im Ausdruck verwendeten ursprünglichen iterablen nicht ändert. Ein typischer Ausdruck des Listenverständnisses muss eine "für" -Klause. Ohne ein Listenverständnis zu verwenden, wird das obige Beispiel auf folgende Weise geschrieben:

Zahlen = []
für x im Bereich (10):
Zahlen.anhängen (x)
Druck (Zahlen)

Leistung und Lesbarkeit

Listenfunktionen sind schneller als bei Schleifen. Wenn Sie jedoch nicht über Hunderttausende von Artikeln iteriert werden, werden Sie keine wichtigen Leistungsverbesserungen bemerken. Während das Listenverständnis eine kurze Möglichkeit zum Schreiben für Schleifen bietet, können komplexe Ausdrücke zu einer schlechten Lesbarkeit von Code und einer erhöhten Ausführlichkeit führen. Es ist wichtig, den Code lesbar zu halten, es sei denn, es ist eine absolute Notwendigkeit für Ihr Programm, eine maximale Leistung zu erzielen.

Beispiel: Verwenden der List -Verständnis -Syntax mit Wörterbüchern und Sätzen

Ein Python-Wörterbuch ist eine Sammlung von Elementen, die in Schlüsselwertpaaren definiert sind, während ein Satz eine Sammlung von einzigartigen Werten ist, bei denen Duplikate nicht zulässig sind. Listenverständnisse können auch mit Python -Wörterbüchern und -Sets verwendet werden. Die Syntax unterscheidet sich geringfügig, anstatt den Ausdruck in quadratischen Klammern einzuwickeln. Sie erhalten auch ein neues Wörterbuch / ein neues Objekt anstelle einer neuen Liste.

Data = "City": "New York", "Name": "John Doe"
formated_data = k: v.title () für k, v in Daten.Artikel()
print (formated_data)

Im obigen Beispiel werden Stringwerte in Title Case konvertiert und ein neues Wörterbuch namens "formated_data" erstellt, dessen Ausgabe: 'City': 'New York', 'Name': 'John Doe' sein wird. Sie können auch das Wörterbuch / die festgelegte Einstellung ändern, indem Sie die vorhandene Wörterbuchvariable auf der linken Seite angeben.

Data = "City": "New York", "Name": "John Doe"
Data = k: v.title () für k, v in Daten.Artikel()
Druck (Daten)

Ohne das Wörterbuch -Verständnis würde der Code so aussehen:

Data = "City": "New York", "Name": "John Doe"
formated_data =
für k, v in Daten.Artikel():
formated_data [k] = v.Titel()
print (formated_data)

Da es keine Schlüsselwertpaare in Sätzen gibt, kann ein festgelegtes Verständnis auf die gleiche Weise wie ein Listenverständnis definiert werden. Der einzige Unterschied ist die Verwendung von lockigen Klammern.

Beispiel: Mehrfach für Schleifen in einem Listenverständnis

Das oben erwähnte Beispiel für das Listenverständnis ist grundlegend und verwendet eine einzelne „für“ Anweisung. Im Folgenden finden Sie ein Beispiel, das mehrere für Schleifen und eine bedingte Anweisung „if“ verwendet.

Adjektive = ["Disco", "Eoan", "Focal", "kunstvoll"]
Tiere = ["Dingo", "Hermelin", "Fossa", "Beaver"]
Codenamen = [x + "" + y für x in Adjektiven für y bei Tieren, wenn y.starten (x [0])]
drucken (Codenamen)

Der Code zeigt ['Disco dingo', 'eoan ermine', 'focal fossa'] als Ausgabe. Die beiden für Schleifen gehen über „Adjektive“ und „Tiere“ -Listen und ihre Mitglieder werden nur dann mit einem Raum verbunden, nur wenn der erste Buchstabe beider Wörter gleich ist. Ohne Listenverständnisse würde der Code so aussehen:

Adjektive = ["Disco", "Eoan", "Focal", "kunstvoll"]
Tiere = ["Dingo", "Hermelin", "Fossa", "Beaver"]
Codenamen = []
für x in Adjektiven:
für y bei Tieren:
Wenn y.starten (x [0]):
Codenamen.anhängen (x + "" + y)
drucken (Codenamen)

Beispiel: Listenverständnis mit der IF-ELSE-Klausel auflisten

Das folgende Beispiel zeigt die Nutzung von if und sonst Aussagen in List -Verständnissen.

number_list = [1, 2, 3, 4]
Another_List = [5, 6, 7, 8]
result = [true if (x + y) % 2 == 0 sonst falsch für x in number_list für y in einer anderen_list]
Druck (Ergebnis)

Während des Durchschleifens von zwei Listen überprüft das Listenverständnis, ob die Summe des Elementpaars ausgeglichen ist oder nicht. Ausführen des obigen Code. Ohne Listenverständnis würde der Code so aussehen:

number_list = [1, 2, 3, 4]
Another_List = [5, 6, 7, 8]
Ergebnis = []
für x in number_list:
für y in einem anderen_list:
if (x + y) % 2 == 0:
Ergebnis.anhängen (wahr)
anders:
Ergebnis.anhängen (falsch)
Druck (Ergebnis)

Abschluss

List -Verständnisse bieten eine gute Möglichkeit, saubere und präzise Schleifenanweisungen zu schreiben. Sie können jedoch schnell komplex und schwer zu verstehen, ob mehrere Schleifen und bedingte Aussagen verwendet werden. Am Ende geht es zum Komfortniveau eines Programmierers, aber im Allgemeinen ist es im Allgemeinen eine gute Idee, explizit, lesbar und leicht zu debuggen Code, anstatt übermäßig zu verwenden.