Heute lernst du:
Am Ende kannst du komplexe Listen und Dictionaries deutlich schneller und sauberer erstellen.
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
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]
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]
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)}
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}
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}
Erstelle eine Liste aller geraden Zahlen von 1 bis 20:
numbers = [x for x in range(1,21) if x % 2 == 0]
Erstelle ein Dictionary mit Zahlen von 1 bis 5 und ihren Quadraten:
squares = {x: x*x for x in range(1,6)}