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