Der ein oder andere kennt List Comprehension vielleicht aus anderen Sprachen wie zum Beispiel Haskell . Erfreulicherweise besitzt auch Python dieses syntaktische Zuckerstück.
Jeder Programmierer kennt aus der täglichen Arbeit folgende Aufgabe: Man hat eine Menge von Objekten zur Verfügung und will eine Operation auf diese anwenden, um wiederrum eine neue Menge von Objekten zu erhalten.
List Comprehension kann einige dieser Aufgaben erleichtern, in dem einfache For-Schleifen durch kurze Ausdrücke ersetzt werden können:
lon = [1,2,3,4,5,6] after_op = [] for number in lon: after_op.append(number + 1)
Oder kurz mit List Comprehension:
lon = [1,2,3,4,5,6] after_op = [number + 1 for number in lon]
List Comprehension liest sich also wie die aus der Mathematik bekannte Mengendefinition. Dies erlaubt es, viele kleine Arbeiten ohne Schleifen zu erledigen. Weitere Beispiele hierzu siehe hier.
Ein nettes kleines Beispiel ist die Umsetzung des Sortieralgorithmus Quicksort, die relativ einfach die Funktionsweise des Algorithmus darstellt:
def quicksort (liste): if liste == []: return [] pivot = liste[0] # wir wählen das erste Element als Pivotelement. return [kleiner for kleiner in liste if kleiner <= pivot] + pivot + [groesser for groesser in liste if groesser > pivot]
