Python-Listenverständnisse anhand von Beispielen erklärt

Listenverständnisse bieten eine kompakte Möglichkeit, Listen in Python zu erstellen. Sie sind lesbarer und oft effizienter als herkömmliche Schleifen. Dieser Artikel erläutert, was Listenverständnisse sind, wie sie funktionieren und liefert Beispiele zur Veranschaulichung ihrer Verwendung.

Was ist eine Listenableitung?

Eine Listenableitung ist eine kompakte Möglichkeit, alle oder einen Teil der Elemente einer Sammlung zu verarbeiten und eine Liste mit den Ergebnissen zurückzugeben. Die Syntax einer Listenableitung lautet:

[expression for item in iterable if condition]

Hier ist Ausdruck das aktuelle Element in der Iteration, aber auch das Ergebnis, das Sie bearbeiten können, bevor es wie ein Listenelement endet. iterierbar ist die Sammlung, die Sie durchlaufen, und Bedingung ist ein optionaler Filter, der nur Elemente einschließt, die die Bedingung erfüllen.

Grundlegende Beispiele

Erstellen einer Liste von Quadraten

Um eine Liste mit Quadratzahlen von 0 bis 9 zu erstellen, können Sie eine Listenableitung wie folgt verwenden:

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
squares = [x ** 2 for x in numbers]
print(squares)

Ausgabe:

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Elemente filtern

Sie können auch eine Bedingung zum Filtern von Elementen hinzufügen. So erhalten Sie beispielsweise nur die geraden Zahlen aus der Liste:

even_squares = [x ** 2 for x in numbers if x % 2 == 0]
print(even_squares)

Ausgabe:

[0, 4, 16, 36, 64]

Eine Liste von Listen reduzieren

Wenn Sie eine Liste von Listen haben und diese vereinfachen möchten, können Sie eine Listenableitung verwenden:

list_of_lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened = [item for sublist in list_of_lists for item in sublist]
print(flattened)

Ausgabe:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

Erweiterte Beispiele

Anwenden von Funktionen

Sie können Funktionen innerhalb einer Listenableitung anwenden. So konvertieren Sie beispielsweise eine Liste von Zeichenfolgen in Großbuchstaben:

words = ['hello', 'world', 'python']
uppercase_words = [word.upper() for word in words]
print(uppercase_words)

Ausgabe:

['HELLO', 'WORLD', 'PYTHON']

Verschachtelte Verständnisse

Listenverständnisse können verschachtelt werden. So erstellen Sie beispielsweise eine Liste von Tupeln (i, j), wobei i und j beide Elemente aus zwei Listen sind:

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
pairs = [(i, j) for i in list1 for j in list2]
print(pairs)

Ausgabe:

[(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b'), (2, 'c'), (3, 'a'), (3, 'b'), (3, 'c')]

Abschluss

Listenverständnisse bieten eine leistungsstarke und prägnante Möglichkeit, Listen in Python zu generieren. Sie können Ihren Code vereinfachen und lesbarer machen, indem sie mehrere Zeilen Schleifencode durch eine einzige Zeile Verständnisse ersetzen. Üben Sie die Verwendung von Listenverständnissen, um sich mit ihrer Syntax und ihren Funktionen vertraut zu machen.