要从一个生成器创建另一个生成器,可以使用yield关键字在一个生成器中调用另一个生成器。下面是一个示例代码,展示如何从一个生成器创建另一个生成器:
def generator1():
yield 1
yield 2
yield 3
def generator2(gen):
for item in gen:
yield item * 10
g1 = generator1()
g2 = generator2(g1)
for item in g2:
print(item)
在上面的代码中,generator1
是一个简单的生成器,它会生成数字1、2和3。generator2
是一个接受一个生成器作为参数的生成器,它会将接收到的每个元素乘以10后生成一个新的元素。
首先,我们创建了g1
生成器实例,它是由generator1
生成的。然后,我们将g1
作为参数传递给generator2
生成器,并创建了g2
生成器实例。最后,我们使用for循环遍历g2
生成器,并打印每个元素。
输出结果将是:
10
20
30
通过调用一个生成器的yield语句,将控制权转移到另一个生成器。这样,我们就可以在一个生成器中使用另一个生成器来生成新的值。