Ich versuche, eine "einfache" rekursive Funktion zu schreiben, um einen Baum zu durchlaufen, der durch geschachtelte Listen repräsentiert wird. Ich habe die richtige Ausgabe, wenn ich print
verwende, aber ich möchte das Ergebnis in einer list
zurückgegeben werden.Rekursive Funktion zum Rückgängigmachen einer beliebig verschachtelten Liste
-Code
def trav(t):
while len(t) > 1:
for counter, i in enumerate(t):
if isinstance(i, list):
t2 = t.pop(counter)
trav(t2)
n=t.pop()
print(n)
Run es
tree1 = [1, [2, [4], [5]], [3]]
trav(tree1)
Ausgabe über Druck:
4
5
2
3
1
Wunsch Ausgabe über Rückgabewert:
[4, 5, 2, 3, 1]
@coldspeed - Genau das, was ich brauchte! Gibt es eine Möglichkeit, dies mit 'yield' zu tun? Ich frage mich nur – Alex
@Alex Ich kann Ihnen keinen konkreten Grund geben (nennen Sie es Programmierer Intuition), aber ich glaube nicht, Ausbeute wäre idiomatisch Sound-Konstrukt für diese Anwendung. –