Python-Generatoren: Korrigieren des Codes, der einen Baum rekursiv ist

8
%Vor%

Node ist eine einfache baumartige Datenstruktur. Das erste Element der Liste ist immer der Wert des Knotens, weitere Elemente sind untergeordnete Elemente. Wenn der Knoten mit etwas anderem als einer Liste initialisiert wird, ist dieser Wert derselbe und Kinder werden [], eine leere Liste.

%Vor%

Nun wäre es toll, einen rekursiven Iterator über alle Elemente zu haben, aber mein Generator liefert nur das erste Element. Warum passiert das?

    
George 03.10.2011, 11:24
quelle

2 Antworten

14

Einfach node_recurse_generator rekursiv aufrufen ist nicht genug - Sie müssen yield ihre Ergebnisse:

%Vor%     
NPE 03.10.2011, 11:27
quelle
0

Wie yak im Kommentar der oberen Antwort erwähnt, können Sie auch yield from nach Python 3.3. %Vor%     

Zhe He 09.12.2017 22:34
quelle

Tags und Links