Gibt es in Python eine Möglichkeit, die Reihenfolge zu ändern, in der der Ertrag von get verarbeitet wird? [Duplikat

Diese Frage hat hier bereits eine Antwort:

Erste Version von itertools.chain () 2 Antworten

Wenn ich mache

def foo():
    yield from range(0,10)
    yield from range(10,20)

for num in foo():
    print(num)

Ich erhalte eine geordnete Liste von 0 bis 19. Ohne Änderung der Eingabe der Bereichsfunktionen kann auf einfache Weise angegeben werden, dass ich eine Liste haben möchte, die lautet: 0,10,1,11,2,12 ...

Grundsätzlich möchte ich zuerst das erste Element jedes Generators. Dann möchte ich das zweite Element von jedem Generator und dann das dritte und so weiter.

Bonuspunkte: Gibt es eine Möglichkeit, dies zu ändern, sodass der zweite Generator den Rest der Ergebnisse liefert, wenn die Generatoren eine ungleiche Menge an Ergebnissen liefern, nachdem der erste abgeschlossen ist?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage