Einführung

Python ist bekannt für seine einfache, aber mächtige Syntax, und eine der elegantesten Funktionen ist die List Comprehension. Sie bietet eine schnelle Möglichkeit, Listen zu erzeugen, ohne aufwendige for-Schleifen zu verwenden. In diesem Beitrag zeige ich dir, wie du List Comprehensions nutzen kannst, um deinen Python-Code sauberer und effizienter zu gestalten.

Was ist eine List Comprehension?

Eine List Comprehension ist eine kompakte Möglichkeit, eine neue Liste zu erstellen, indem man eine vorhandene Liste oder andere iterierbare Objekte transformiert. Sie besteht aus eckigen Klammern, die einen Ausdruck, gefolgt von einer Schleife, die die Elemente produziert, und optionalen if-Klauseln enthalten.

Grundsätzliche Syntax

[expression for item in iterable]

Hier ist expression der Wert, der für jedes Element in der neuen Liste enthalten sein wird, während item der aktuelle Wert aus der iterable ist.

Praktische Beispiele

Beispiel 1: Erstellen einer quadratischen Liste

Anstatt eine herkömmliche for-Schleife zu verwenden, kannst du eine List Comprehension einsetzen:

squares = [x**2 for x in range(10)]
print(squares)

Dies wird [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] ausgeben.

Beispiel 2: Filtern mit Bedingungen

Du kannst auch Bedingungen hinzufügen, um bestimmte Elemente einzuschließen oder auszuschließen:

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

Das Ergebnis ist [0, 4, 16, 36, 64], nur die Quadrate der geraden Zahlen.

Beispiel 3: Elemente transformieren

Manchmal möchtest du nicht nur die Elemente einer Liste kopieren, sondern sie auch beim Kopieren transformieren:

capitals = ['Hello', 'World', 'Python']
lowercase = [word.lower() for word in capitals]
print(lowercase)

Dies ergibt ['hello', 'world', 'python'].

Beispiel 4: Vorhandene Elemente entfernen oder modifizieren

Obwohl du kein direktes Element “löschen” mit List Comprehensions durchführen kannst, kannst du unerwünschte Elemente einfach filtern:

numbers = [1, 2, 3, 4, 5, 6]
filtered_numbers = [x for x in numbers if x > 3]
print(filtered_numbers)

Ergebnis: [4, 5, 6]. Elemente, die kleiner oder gleich 3 sind, werden ausgeschlossen.

Beispiel 5: Elemente hinzufügen

Eine List Comprehension fügt der neuen Liste automatisch Elemente hinzu. Wenn du jedoch zusätzlich zu den transformierten Elementen etwas hinzufügen möchtest, sieht das oft so aus:

extended = [x for x in numbers] + [7, 8, 9]
print(extended)

List Comprehensions mit mehreren Schleifen

Komplexere Strukturen sind ebenfalls möglich, indem du mehrere Schleifen integrierst:

combinations = [(x, y) for x in range(3) for y in range(3)]
print(combinations)

Dies erzeugt eine Liste von Tupeln mit allen Kombinationen von Werten zwischen 0 und 2: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)].