Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

List comprehension

List Comprehensions benutzt man, um aus Listen neue Listen zu erzeugen. Die allgemeine Syntax lautet:

Zum Beispiel wir haben diese Liste hier:

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

Und ich möchte alle diese Zahlen quadrieren, dann kann ich es so aus numbers eine quadrierte Liste machen:

bigger_numbers = [num ** 2 for num in numbers]

for num in numbers kennen wir schon von der for Schleife und heißt "schleife über alle Zahlen von numbers". num ist dann die Iterationsvariable mit der jetzt was machen können und was wir machen, steht ganz am Anfang num ** 2. All das umschachteln wir mit [] Klammern, weil wir ja eine neue Liste haben wollen.

print(bigger_numbers) gibt uns dann das hier:

[1, 4, 9, 16, 25]

Eine Liste filtern

Nicht nur können wir so eine Liste verändern, sondern wir können mit einer ähnlichen Syntax auch eine Liste filtern. Lass zum Beispiel von numbers alle ungeraden Zahlen entfernen!

evens = [num for num in numbers if num % 2 == 0]

print(evens)
[2, 4]

Was passiert hier?

  • Mit for num in numbers gehen wir über alle Zahlen von numbers.
  • Mit if num % 2 == 0 am Ende drückt aus, dass wir die Zahl behalten wollen, die Behauptung von num % 2 == 0 nach dem if True ist. Wenn nicht dann wird, dann ignorieren wir diese num.
  • Die num am Anfang sagt, dass wir num so wie es ist zur Liste hinzufügen, aber auch nur wenn das if True ist.

Eine Liste filtern und verändern

Wir können auch nach geraden Zahlen filtern und gleichzeitg eine List hoch zwei nehmen.

bigger_and_evens = [num ** 2 for num in numbers if num % 2 == 0]

print(bigger_and_evens)
[4, 16]