Denis
Denis

Reputation: 7343

How to return the value of a recursive function

I have recursive function which walk nested dict and return needed key's value:

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

c=recurs(d)
print c

And how i can get these values?

Upvotes: 0

Views: 246

Answers (2)

Sven Marnach
Sven Marnach

Reputation: 601799

The easiest way to get a flattened iterator is to write a generator function:

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

Upvotes: 3

Roman Bodnarchuk
Roman Bodnarchuk

Reputation: 29727

Just return it:

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

Upvotes: 1

Related Questions