Python Fortgeschritten: Listen- & Dictionary-Comprehensions

Ziel des Tages

Heute lernst du:

Am Ende kannst du komplexe Listen und Dictionaries deutlich schneller und sauberer erstellen.

Schritt 1: Was ist eine Comprehension?

Eine Comprehension ist eine Kurzschreibweise für Schleifen.

Statt:


numbers = [1,2,3,4,5]
squares = []

for x in numbers:
    if x % 2 == 1:
        squares.append(x*x)

Kannst du schreiben:


squares = [x*x for x in numbers if x % 2 == 1]

👉 Gleiche Funktion, aber kürzer und übersichtlicher

Schritt 2: Listen-Comprehensions verstehen


numbers = [1,2,3,4,5]
squares = [x*x for x in numbers if x % 2 == 1]

print(squares)

Ausgabe:


[1, 9, 25]

Struktur:


[x*x for x in numbers if x % 2 == 1]

Schritt 3: Weitere Beispiele

Alle Zahlen verdoppeln:


numbers = [1,2,3]
new_list = [x*2 for x in numbers]
print(new_list)

Ausgabe:


[2, 4, 6]

Nur gerade Zahlen:


numbers = [1,2,3,4,5]
evens = [x for x in numbers if x % 2 == 0]
print(evens)

Ausgabe:


[2, 4]

Schritt 4: Dictionary-Comprehensions


names = ["Max","Anna","Tom"]
ages = [20,25,30]

person_dict = {names[i]: ages[i] for i in range(len(names))}

print(person_dict)

Ausgabe:


{"Max": 20, "Anna": 25, "Tom": 30}

Bessere Variante mit zip():


person_dict = {name: age for name, age in zip(names, ages)}

Schritt 5: Weitere Beispiele


numbers = [1,2,3,4]

squares_dict = {x: x*x for x in numbers}

print(squares_dict)

Ausgabe:


{1: 1, 2: 4, 3: 9, 4: 16}

Schritt 6: Mit Bedingungen kombinieren


numbers = [1,2,3,4,5]

even_squares = {x: x*x for x in numbers if x % 2 == 0}

print(even_squares)

Ausgabe:


{2: 4, 4: 16}

Tipps

Übung 1: Gerade Zahlen

Erstelle eine Liste aller geraden Zahlen von 1 bis 20:


numbers = [x for x in range(1,21) if x % 2 == 0]

Übung 2: Dictionary mit Quadraten

Erstelle ein Dictionary mit Zahlen von 1 bis 5 und ihren Quadraten:


squares = {x: x*x for x in range(1,6)}