Rekursives Verarbeiten
Verfasst: Samstag 9. April 2011, 11:42
Hallo Liebe Foren-Gemeinde,
ich habe ein Problem beim rekursiven Verarbeiten von Daten, das sich damit reproduzieren lässt.
Die Ausgabe sieht so aus,wobei ich eher soetwaserwartet hätte.
Irgendwie behält er den letzten Wert anstatt elemente als eine leere Liste neu zu erzeugen.
Hat da jemand eine Idee?
Vielen Dank und Viele Grüße
Maxi
ich habe ein Problem beim rekursiven Verarbeiten von Daten, das sich damit reproduzieren lässt.
Code: Alles auswählen
def test(dictionary, search, elemente = []):
print(elemente)
for key in dictionary:
if key == search[0]:
if len(search) > 1:
elemente = test(dictionary[key], search[1:], elemente)
else:
elemente.append(dictionary[key])
return elemente
test_dict = {'test_1' :
{'test_1_1' :
{'test_1_1_1' : 'test_1_1_1',
'test_1_1_2' : 'test_1_1_2',
'test_1_1_3' : 'test_1_1_3'}},
'test_2' : 'test_2'}
print('test_1')
test_1 = test(test_dict, ['test_1', 'test_1_1'])[0]
print(test_1)
print('test_2')
test_2 = test(test_1, ['test_1_1_1'])
print(test_2)Code: Alles auswählen
test_1
[]
[]
{'test_1_1_3': 'test_1_1_3', 'test_1_1_2': 'test_1_1_2', 'test_1_1_1': 'test_1_1_1'}
test_2
[{'test_1_1_3': 'test_1_1_3', 'test_1_1_2': 'test_1_1_2', 'test_1_1_1': 'test_1_1_1'}]
[{'test_1_1_3': 'test_1_1_3', 'test_1_1_2': 'test_1_1_2', 'test_1_1_1': 'test_1_1_1'}, 'test_1_1_1']
Code: Alles auswählen
test_1
[]
[]
{'test_1_1_3': 'test_1_1_3', 'test_1_1_2': 'test_1_1_2', 'test_1_1_1': 'test_1_1_1'}
test_2
[]
['test_1_1_1']
Irgendwie behält er den letzten Wert anstatt elemente als eine leere Liste neu zu erzeugen.
Hat da jemand eine Idee?
Vielen Dank und Viele Grüße
Maxi