Können Generatoren rekursiv sein?

Ich naiv versucht, erstellen Sie eine rekursive generator. Hat nicht funktioniert. Dies ist, was ich getan habe:

def recursive_generator(lis):
    yield lis[0]
    recursive_generator(lis[1:])

for k in recursive_generator([6,3,9,1]):
    print(k)

Alles, was ich bekam, war das erste Element 6.

Gibt es eine Möglichkeit, um diesen code zu arbeiten? Im wesentlichen die übertragung der yield Befehl, um die Ebene nach oben in eine Rekursion Schema?

  • Du bist nicht nachgeben, wenn Sie nennen Sie es noch einmal. Es trifft die erste Ausbeute, nicht sehen, eine weitere yield-Anweisung, und wird beendet.
  • Sie müssen entweder yield from another_generator() oder die Rendite jedes element ein, indem man sich ausdrücklich in der while-Schleife. Ob another_generator() ist oder nicht "rekursiv" in Ihrer Terminologie -, dass spielt keine Rolle.
  • Möglich, Duplikat der Python: wie man eine rekursive generator-Funktion
InformationsquelleAutor Aguy | 2016-07-07
Schreibe einen Kommentar