Как вернуть значение рекурсивной функции - PullRequest
0 голосов
/ 01 августа 2011

У меня есть рекурсивная функция, которая обходит вложенный dict и возвращает нужное значение ключа:

def recurs(l):
    for key in l.keys():
        if key == '_events':
            return l[key]
        else:
            recurs(l[key])

c=recurs(d)
print c

И как я могу получить эти значения?

Ответы [ 2 ]

3 голосов
/ 01 августа 2011

Самый простой способ получить плоский итератор - написать функцию генератора:

def recurs(l):
    for key in l.keys():
        if key == '_events':
            yield l[key]
        else:
            for x in recurs(l[key]):
                yield x
1 голос
/ 01 августа 2011

Просто return это:

def recurs(l):
    for key in l.keys():
        if key == '_events':
            return l[key]
        else:
            return recurs(l[key])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...