Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| modul:m323:learningunits:lu04:generatorexpressions [2024/03/28 14:07] – angelegt - Externe Bearbeitung 127.0.0.1 | modul:m323:learningunits:lu04:generatorexpressions [2025/12/18 13:26] (aktuell) – kmaurizi | ||
|---|---|---|---|
| Zeile 12: | Zeile 12: | ||
| gen_expr = (expression for item in iterable if condition == True) | gen_expr = (expression for item in iterable if condition == True) | ||
| </ | </ | ||
| + | |||
| + | ===== Beispiel: " | ||
| + | |||
| + | Dieses Beispiel zeigt, dass eine Generator Expression Werte erst erzeugt, wenn sie wirklich gebraucht werden (z.B. mit '' | ||
| + | |||
| + | <code python> | ||
| + | # Beispiel: Generator Expression ist " | ||
| + | |||
| + | numbers = [1, 2, 3, 4, 5] | ||
| + | |||
| + | squares_gen = (n**2 for n in numbers) | ||
| + | squares_list = [n**2 for n in numbers] | ||
| + | |||
| + | print(squares_gen) | ||
| + | print(squares_list) | ||
| + | |||
| + | # Lazy sichtbar machen: Der Generator liefert Werte erst, wenn man ihn " | ||
| + | print(next(squares_gen)) | ||
| + | print(next(squares_gen)) | ||
| + | |||
| + | # Jetzt sind schon 2 Werte " | ||
| + | print(list(squares_gen)) | ||
| + | |||
| + | # Wichtig: Ein Generator kann danach nicht nochmals von vorne iteriert werden: | ||
| + | print(list(squares_gen)) | ||
| + | </ | ||
| + | |||
| + | ^ Punkt ^ Was man sieht ^ Merksatz ^ | ||
| + | | Lazy-Effekt | '' | ||
| + | | Verbrauch | '' | ||
| + | | Einmaligkeit | zweites '' | ||
| + | |||
| ===== Teile einer Generator Expression ===== | ===== Teile einer Generator Expression ===== | ||