如何解决经过处理后“从”另一个生成器“产生”
我们如何从另一个子生成器中获得收益,但是要进行转换/处理呢?
例如:在下面的代码中,main_gen使用f(x)进行转换后会产生x
def f(x):
return 2*x
def main_gen():
for x in sub_gen():
yield f(x)
可以用产量代替吗?
def main_gen():
yield from ***
解决方法
您可以这样做:
def main_gen():
yield from map(f,sub_gen())
但是,为什么不呢?
def main_gen():
return map(f,sub_gen())
反正这是一个懒惰的迭代器。
,您始终可以将其转换为生成器表达式,然后yield from
将其转换为:
def main_gen():
yield from (f(x) for x in sub_gen())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。