Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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.

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny