我天真地尝试创建一个递归生成器。没用。这就是我所做的:
def recursive_generator(lis):
yield lis[0]
recursive_generator(lis[1:])
for k in recursive_generator([6,3,9,1]):
print(k)
我得到的只是第一个项目6
.
有没有办法让这样的代码工作?本质上是转移yield
在递归方案中命令到上一级?
尝试这个:
def recursive_generator(lis):
yield lis[0]
yield from recursive_generator(lis[1:])
for k in recursive_generator([6,3,9,1]):
print(k)
我应该指出,由于您的函数中存在错误,因此这不起作用。它可能应该包括一项检查lis
不为空,如下图:
def recursive_generator(lis):
if lis:
yield lis[0]
yield from recursive_generator(lis[1:])
如果您使用的是 Python 2.7 并且没有yield from
, 检查一下这个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)