Python 如何返回递归函数的值
我有一个递归函数,它遍历嵌套的dict并返回所需的键的值:Python 如何返回递归函数的值,python,recursion,dictionary,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 我怎样才能得到这些值呢?只要返回它: def recurs(l): for key in l.keys():
def recurs(l):
for key in l.keys():
if key == '_events':
return l[key]
else:
recurs(l[key])
c=recurs(d)
print c
我怎样才能得到这些值呢?只要
返回它:
def recurs(l):
for key in l.keys():
if key == '_events':
return l[key]
else:
return recurs(l[key])
只需返回
it:
def recurs(l):
for key in l.keys():
if key == '_events':
return l[key]
else:
return recurs(l[key])
获取平坦迭代器的最简单方法是编写生成器函数:
def recurs(l):
for key in l.keys():
if key == '_events':
yield l[key]
else:
for x in recurs(l[key]):
yield x
获取平坦迭代器的最简单方法是编写生成器函数:
def recurs(l):
for key in l.keys():
if key == '_events':
yield l[key]
else:
for x in recurs(l[key]):
yield x
现在它返回None,但是dict有两个列表,然后我尝试使用yield它的返回空iter objectIt从函数返回一个(一)值是没有意义的(逻辑上),因为它可能多次调用
recurse
。所以问题是,你期望什么样的回报值?单一值?一个列表?现在它的返回值为None,但是dict有两个列表,然后我尝试使用yield它的返回值为空的iter objectIt(逻辑上)从函数返回一个(一)值是没有意义的,因为它可能多次调用recurse
。所以问题是,你期望什么样的回报值?单一值?在第一次迭代后将终止循环的列表。虽然我不明白循环的目的是什么…而不是两个值列表我明白了one@Felix我想OP需要一个值。@Roman:但哪一个呢?你认为他为什么想要第一个?这将在第一次迭代后终止循环。虽然我不明白循环的目的是什么…而不是两个值列表我明白了one@Felix我想OP需要一个值。@Roman:但哪一个呢?你认为他为什么想要第一个?