
Python a využití rekurze
Zdar borci, mám jednoduchý úkol. Používám python 3.6 a za úkol máme seznam seznamů seznamů... a rekurzivě máme vypsat všechny prvky z tohoto seznamu. Bohužel nevím, jak na to.
Mám funkci, která mi vypíše postupně seznamy (result_all), ale při rekurzivním volání funkce se mi to samozřejmě přepíše na prázdný seznam a posléze se nově zaplňují hodnoty.
def recursive_count(nested_num_list):
result_all = [] # globalni promenna
if len(nested_num_list) != 0:
for elem in range(len(nested_num_list)):
#print(nested_num_list, nested_num_list[elem], elem) # kontrola
if type(nested_num_list[elem]) == type([]):
#print(nested_num_list, elem) # kontrola
recursive_count(nested_num_list[elem])
else:
result_all.append(nested_num_list[elem])
print('vysledek:', result_all)
return result_all
print(recursive_count([2, 9, [2, 1, 13, 2], 8, [2, 6]]))
#recursive_count([[9, [7, 1, 13, 2], 8], [7, 6]])
#recursive_count([[9, [7, 1, 13, 2], 8], [2, 6]])
print(recursive_count([[5, [5, [1, 5], 5], 5], [5, 6]]))
Při tomto programu vyjde takovýto výsledek, přičemž result vypíše vždy jen poslední seznam.
vysledek: [2, 1, 13, 2]
vysledek: [2, 6]
vysledek: [2, 9, 8]
[2, 9, 8] // toto je result
vysledek: [1, 5]
vysledek: [5, 5]
vysledek: [5, 5]
vysledek: [5, 6]
vysledek: []
[] // toto je result
Nevíte prosím, kde mám chybu a jak to udělat, aby mi result vypsal všechny prvky ze seznamů? Díky moc.