Рекурсия в Python с возвратом пустого списка - PullRequest
0 голосов
/ 29 февраля 2020

Первое размещение. Мне нужно отфильтровать через кортеж, который может содержать больше кортежей и списков внутри себя. Затем мне нужно получить максимальное значение. Кто-нибудь знает, почему мой список int_storage пуст?

def max_val (t): int_storage = [] tuple_storage = []

if type(t) == int:
    int_storage.append(t)
    return int_storage

for i in t:
    if type(t) == int:
        int_storage.append(i)

    if type(i) != int:
        for tup in i:
            tuple_storage.append(tup)
        return max_val(tuple_storage)
return max(int_storage)

test = ((5, (1,2) , [[1], [2]]))
print (max_val (test))

1 Ответ

0 голосов
/ 29 февраля 2020

Во-первых, это должно быть i вместо t, я считаю, что это просто небольшая опечатка.

for i in t:
   if type(t) == int: #the t on this line

Во-вторых, вы понимаете, что ваши int_storage и tuple_storage - это просто локальная переменная?

Как только вы введете max_val () во второй раз, int_storage и tuple_storage будут совершенно новыми переменными и будут иметь значение [], как вы их определили. Я предлагаю вам сделать некоторые исследования для получения дополнительной информации.

Также сделав int_storage, tuple_storage global решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...