Ich beschäftige mich nun schon einige Zeit mit Python ( rein aus privater Interesse) und hab mir deshalb auch ein Buch gekauft. In diesem Buch gibt es eigentlich tolle Aufgaben aber nicht zu allen Aufgaben gibt es auch Lösungen. Ich glaube es liegt daran, das diese besagten Aufgaben eigentlich leicht zu lösen sein sollten aber ich hänge jetzt seit fast 2 Stunden und hab wirklich keine Idee. Ich hoffe das sich hier jemand findet der mir helfen kann. Also die Aufgabenstellung lautet:
Schreiben Sie eine Funktion mit dem Namen verschachtelte_summe, die eine verschachtelte Liste von Integer-Werten erwartet und die Elemente aller verschachtelten Listen summiert.
Ok...also ich hab das ganze jetzt so gelöst:
Code: Alles auswählen
[Codebox=python file=Unbenannt.py]
def summe(t):
i=0
for x in t:
if type(x) == list:
t.extend(x)
t.pop(i)
summe(t)
else:
i = i + 1
return sum(t)
print summe([1,2,[34,76,45,2],3,90,73,[11,[22,33],12,4],4,5])[/Codebox]
Auch verstehe ich nicht ganz wieso es so wie ich es gelöst habe überhaupt funktioniert. Habe es mir im Debugger angesehen, aus irgendeinem Grund wird sobald die Funktion das letzte mal aufgerufen wird meine Liste (t) in jeder darunter liegende Funktion bzw. Stapel auch geändert?!
Das i benutze ich (denke es wird euch aber auffallen) nur, um für meinen Pop() befehl die Position zu ermitteln.
Ich hoffe es findet sich jemand der sich die zeit nimmt mir zu helfen. Wie gesagt es ist nichts für die Schule, es ist wirklich aus rein privater Interesse.