2 Minuten
Python List Comprehesions
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)]
.