Python List Comprehension: List Comprehensions bieten eine elegante und kompakte Möglichkeit, Listen zu erstellen oder zu filtern. Sie sind eine der leistungsfähigsten Funktionen in Python und machen den Code kürzer und oft besser lesbar. Mit List Comprehensions lassen sich Listen basierend auf bestehenden Listen generieren, indem eine Ausdruckssyntax genutzt wird.
Grundsyntax
Die Grundsyntax einer List Comprehension ist:
[ausdruck for element in iterable]
Dies erzeugt eine Liste, die aus dem ausdruck
für jedes element
in einer iterable
besteht.
Beispiel
Hier wird jeder Wert in einer bestehenden Liste mit 2 multipliziert:
zahlen = [1, 2, 3, 4]
doppelt = [x * 2 for x in zahlen]
print(doppelt) # Ausgabe: [2, 4, 6, 8]
List Comprehensions mit Bedingung
Mit List Comprehensions können Sie auch Bedingungen hinzufügen, um bestimmte Elemente auszuwählen.
zahlen = [1, 2, 3, 4, 5, 6]
gerade_zahlen = [x for x in zahlen if x % 2 == 0]
print(gerade_zahlen) # Ausgabe: [2, 4, 6]
In diesem Beispiel wird nur jedes gerade Element ausgewählt.
Verschachtelte List Comprehensions
List Comprehensions können auch verschachtelt werden, um Listen von Listen zu erstellen, wie z.B. eine 2D-Matrix:
matrix = [[j for j in range(3)] for i in range(3)]
print(matrix)
# Ausgabe: [[0, 1, 2], [0, 1, 2], [0, 1, 2]]
List Comprehensions mit mehreren Bedingungen
Es ist auch möglich, mehrere Bedingungen einzufügen. Diese können durch if
– und else
-Statements weiter angepasst werden.
zahlen = [1, 2, 3, 4, 5]
ergebnis = ["gerade" if x % 2 == 0 else "ungerade" for x in zahlen]
print(ergebnis) # Ausgabe: ['ungerade', 'gerade', 'ungerade', 'gerade', 'ungerade']
Beispiele für häufige Anwendungen
Zeichenkette in Großbuchstaben umwandeln
woerter = ["apfel", "banane", "kirsche"]
grossbuchstaben = [wort.upper() for wort in woerter]
print(grossbuchstaben) # Ausgabe: ['APFEL', 'BANANE', 'KIRSCHE']
Zahlen in Quadrat umwandeln
zahlen = [1, 2, 3, 4]
quadrate = [x ** 2 for x in zahlen]
print(quadrate) # Ausgabe: [1, 4, 9, 16]
Häufig gestellte Fragen
Was ist eine List Comprehension?
Eine List Comprehension ist eine kompakte Methode zur Erstellung von Listen in Python, die auf Ausdrücken und Schleifen basiert.
Kann ich Bedingungen in List Comprehensions verwenden?
Ja, Bedingungen wie if
können hinzugefügt werden, um bestimmte Elemente zu filtern.
Wie erstelle ich eine verschachtelte List Comprehension?
Verwenden Sie eine List Comprehension innerhalb einer anderen, z.B. [[j for j in range(3)] for i in range(3)]
für eine Matrix.
Was ist der Vorteil von List Comprehensions?
Sie sind kompakter, oft besser lesbar und performanter als herkömmliche Schleifen.