Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
python:generator [2020/03/02 10:44] root |
python:generator [2020/03/05 13:46] (aktuell) root [Generator Expressions] |
||
---|---|---|---|
Zeile 32: | Zeile 32: | ||
Der Generator wird einmal aufgerufen (per next) und arbeitet dann einmal die Anweisungen in Klammern durch bis ein Ergebnis gefunden wird -> die Anweisung ist durchlaufe alle Werte von a und gebe etwas zurück wenn der aktuelle Wert der Schleife 4 ist.\\ \\ | Der Generator wird einmal aufgerufen (per next) und arbeitet dann einmal die Anweisungen in Klammern durch bis ein Ergebnis gefunden wird -> die Anweisung ist durchlaufe alle Werte von a und gebe etwas zurück wenn der aktuelle Wert der Schleife 4 ist.\\ \\ | ||
Der Vorteil hier ist, die Schleife wird nur bis zum erreichen von 4 ausgeführt, | Der Vorteil hier ist, die Schleife wird nur bis zum erreichen von 4 ausgeführt, | ||
+ | |||
+ | |||
+ | ===== Alle Ergebnisse eines Generators ===== | ||
+ | |||
+ | <sxh python> | ||
+ | a=*(records.name for i in records) | ||
+ | </ | ||
+ | Oben stehendes würde ein Expansion auf den Generator machen und alle Ergebnisse des Generators in a speichern. | ||
+ | ====== Hilfs-Ausdrücke ====== | ||
+ | |||
+ | * next -> Ruft die __next__-Methode eines Generators auf/ | ||
+ | * more%%_%%itertools.first -> Gibt den ersten Wert eines Generators zurück - im Prinzip wie einmalig next aufrufen, aber erlaubt die Rückgabe eines Default-Wertes wenn StopIteration auftritt | ||
+ | * more%%_%%itertools.last -> Gibt den letzten Wert eines Generators zurück | ||
+ | * more_itertools -> hat noch ein paar mehr Funktionen für Generatoren |