如何返回递归函数的值

时间:2011-08-01 12:39:52

标签: python recursion dictionary

我有递归函数,它可以遍历嵌套的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 个答案:

答案 0 :(得分:3)

获得平坦迭代器的最简单方法是编写生成器函数:

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

答案 1 :(得分:1)

只需return

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