Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 3, 2015 18:07:10

Emma
Зарегистрирован: 2015-03-04
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

нужна помощь с рекурсией

Здравствуйте!
Программа вычисляет число элементов в списке:
Например

[1,2,2]  3
               [1, [2,2], 3]  4
Помогите пожалуйста написать ее в рекурсивном виде, чтоба можно было использовать для таких списков
[1,[2,[5,[6,8,9]]]]

def f_len(lst):
    a=0
    for element in lst:
        if type(element)==list:
            for e in element:
                if type(e)==list:
                    a =a + len(e)
                else:
                    a=a+1    
        else:
            a = a+1
    return a
Заранее Спасибо!

Отредактировано Emma (Июнь 3, 2015 18:10:32)

Офлайн

#2 Июнь 3, 2015 18:19:12

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

нужна помощь с рекурсией

def f(a):
    n = 0
    for i in a:
        if isinstance(i, list):
            n += f(i)
        else:
            n += 1
    return n
или так
def f(a):
    return sum(f(i) if isinstance(i, list) else 1 for i in a)



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Июнь 3, 2015 18:24:02)

Офлайн

#3 Июнь 3, 2015 18:25:01

Emma
Зарегистрирован: 2015-03-04
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

нужна помощь с рекурсией

Большое Спасибо!!!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version