{}const=>[]async()letfn</>var
EntwicklungPython

List Comprehensions in Python: Ein Leitfaden für Anfänger

Lernen Sie List Comprehensions in Python kennen — ein leistungsstarkes Werkzeug zum eleganten Erstellen von Listen. Eine detaillierte Anleitung mit praktischen Beispielen, von der grundlegenden Syntax bis hin zu fortgeschrittenen Techniken. Lernen Sie, sauberen und effizienten Python-Code zu schreiben.

К

Kodik

Autor

5 Min. Lesezeit

Was sind List Comprehensions?

List comprehension ist eine kompakte Möglichkeit, eine neue Liste basierend auf einer vorhandenen Sequenz oder einem iterierbaren Objekt zu erstellen. Anstatt mehrere Zeilen mit Schleifen zu schreiben, können Sie dieselbe Logik in einer Zeile ausdrücken.

🔥 100.000+ Schüler sind bereits bei uns

Genug Theorie gelesen?
Zeit zu coden!

Kodik — eine App, in der du durch Praxis programmieren lernst. KI-Mentor, interaktive Lektionen, echte Projekte.

🤖 KI 24/7
🎓 Zertifikate
💰 Kostenlos
🚀 Jetzt starten
Heute beigetreten

Grundlegende Syntax

Die Grundstruktur von list comprehension sieht so aus:

новый_список = [выражение for элемент in последовательность]

Beispiel: traditioneller Ansatz vs. Listenverständnis

Erstellen wir eine Liste von Quadraten von Zahlen von 0 bis 9.

Traditioneller Ansatz:

squares = []
for i in range(10):
    squares.append(i ** 2)
print(squares)
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Mit list comprehension:

squares = [i ** 2 for i in range(10)]
print(squares)
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Das Ergebnis ist das gleiche, aber die zweite Option ist kürzer und liest sich fast wie ein normaler Satz: "Erstelle eine Liste der Quadrate i für jedes i im Bereich von 0 bis 9".

Wir fügen Bedingungen hinzu

Sie können Elemente filtern, indem Sie am Ende eine Bedingung hinzufügen:

новый_список = [выражение for элемент in последовательность if условие]

Beispiele mit Bedingungen

Nur gerade Zahlen:

evens = [i for i in range(20) if i % 2 == 0]
print(evens)
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

Quadrate von nur ungeraden Zahlen:

odd_squares = [i ** 2 for i in range(10) if i % 2 != 0]
print(odd_squares)
# [1, 9, 25, 49, 81]

Zeilenfilterung:

words = ["apple", "banana", "cherry", "date", "elderberry"]
long_words = [word for word in words if len(word) > 5]
print(long_words)
# ['banana', 'cherry', 'elderberry']

Arbeiten mit Zeilen

List comprehensions eignen sich hervorragend für die Verarbeitung von Zeichenfolgen.

Umwandlung in Großbuchstaben:

names = ["anna", "bob", "charlie"]
upper_names = [name.upper() for name in names]
print(upper_names)
# ['ANNA', 'BOB', 'CHARLIE']

Extraktion der Anfangsbuchstaben:

words = ["Python", "is", "awesome"]
first_letters = [word[0] for word in words]
print(first_letters)
# ['P', 'i', 'a']

Verschachtelte Schleifen

List Comprehensions unterstützen verschachtelte Schleifen für die Arbeit mit mehrdimensionalen Daten.

Erstellen von Koordinatenpaaren:

coordinates = [(x, y) for x in range(3) for y in range(3)]
print(coordinates)
# [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

Multiplikation von Elementen aus zwei Listen:

list1 = [1, 2, 3]
list2 = [10, 20, 30]
products = [x * y for x in list1 for y in list2]
print(products)
# [10, 20, 30, 20, 40, 60, 30, 60, 90]

Bedingter if-else-Operator

Sie können den ternären Operator für komplexere Logik verwenden:

новый_список = [выражение_if if условие else выражение_else for элемент in последовательность]

Beispiel: Gerade ersetzen wir durch "gerade", ungerade lassen wir so wie sie sind:

numbers = [1, 2, 3, 4, 5, 6]
result = ["even" if n % 2 == 0 else n for n in numbers]
print(result)
# [1, 'gerade', 3, 'gerade', 5, 'gerade']

Praktische Beispiele

Arbeiten mit Wörterbüchern

Extraktion von Werten:

prices = {"apple": 50, "banana": 30, "cherry": 80}
expensive = [fruit for fruit, price in prices.items() if price > 40]
print(expensive)
# ['apple', 'cherry']

Dateiverarbeitung

Zeilen lesen und filtern:

# Angenommen, wir haben eine Textdatei
lines = ["  hello  ", "world", "  Python  ", ""]
cleaned = [line.strip() for line in lines if line.strip()]
print(cleaned)
# ['hello', 'world', 'Python']

Mathematische Operationen

Anwendung der Funktion auf alle Elemente:

import math
numbers = [4, 9, 16, 25]
roots = [math.sqrt(n) for n in numbers]
print(roots)
# [2.0, 3.0, 4.0, 5.0]

Wann man keine List Comprehensions verwenden sollte

Trotz der Eleganz gibt es Situationen, in denen traditionelle Zyklen vorzuziehen sind:

  1. Komplexe Logik: wenn der Ausdruck zu lang und schwer zu lesen wird

  2. Nebenwirkungen: list comprehensions sind zum Erstellen von Listen gedacht, nicht zum Ausführen von Aktionen

  3. Tiefe Verschachtelung: mehr als zwei verschachtelte Schleifen machen den Code unlesbar

Schlechtes Beispiel (zu kompliziert):

# Tu das nicht!
result = [x * y if x % 2 == 0 else x + y for x in range(10) if x > 5 for y in range(10) if y % 3 == 0]

Es ist besser, es in mehrere Zeilen mit normalen Schleifen aufzuteilen.

Andere Arten von Verständnis

Python unterstützt nicht nur list comprehensions:

Dictionary comprehension:

squares_dict = {x: x ** 2 for x in range(5)}
print(squares_dict)
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

Set comprehension:

unique_squares = {x ** 2 for x in [1, 2, 2, 3, 3, 4]}
print(unique_squares)
# {1, 4, 9, 16}

Generatorausdruck (um Speicher zu sparen):

squares_gen = (x ** 2 for x in range(1000000))
# Erstellt einen Generator, keine Liste, und spart Speicherplatz

Produktivität

List comprehensions arbeiten normalerweise schneller als äquivalente Schleifen mit append(), da sie auf der Ebene des Python-Interpreters optimiert sind.

Befund

List Comprehensions sind ein leistungsstarkes Werkzeug, das Ihren Python-Code eleganter und lesbarer macht. Beginnen Sie mit einfachen Beispielen, üben Sie an realen Aufgaben, und mit der Zeit werden Sie sie natürlich und effektiv einsetzen.

Wichtige Punkte, die man sich merken sollte:

  • List Comprehensions machen den Code kürzer und ausdrucksstärker

  • Sie können Bedingungen für die Filterung hinzufügen

  • Unterstützt verschachtelte Schleifen

  • Vermeiden Sie Komplexität – Lesbarkeit ist wichtiger als Kürze

  • Es gibt auch dict, set comprehensions und generator expressions

Üben Sie, experimentieren Sie und list comprehensions werden ein natürlicher Teil Ihres Python-Programmierstils!

Schließen Sie sich an Kodik — unsere Lern-App für Entwickler! Wir haben freundliche Community im Telegram-Kanal, wo Anfänger und erfahrene Programmierer ihr Wissen teilen, sich gegenseitig bei Aufgaben helfen und neue Technologien diskutieren. Lernen Sie mit uns!

🎯Hör auf zu zögern

Artikel gefallen?
Zeit zum Üben!

Bei Kodik liest du nicht nur — du schreibst sofort Code. Theorie + Praxis = echte Skills.

Sofortige Praxis
🧠KI erklärt Code
🏆Zertifikat

Keine Registrierung • Keine Karte