嵌套 python 个生成器(一个在另一个里面)
nesting python generators (one inside another)
我有两个函数(生成器)。
def a():
yield 1
yield 2
def b():
yield 'A'
yield 'B'
yield a()
现在我想遍历 b()
并期望它应该输出 A B 1 2
。但不是。它给了这个。
In [11]: for i in b():
....: print i
....:
A
B
<generator object a at 0x10fc3ddc0>
如何获得所需的输出?
在python3.3+上,您可以使用yield from
:
def b():
yield 'A'
yield 'B'
yield from a()
在 python3.3 之前的版本中,您需要在循环中显式生成值:
def b():
yield 'A'
yield 'B'
for item in a():
yield item
在Python 3. 你可以使用yield from
def a():
yield 1
yield 2
def b():
yield 'A'
yield 'B'
yield from a()
我有两个函数(生成器)。
def a():
yield 1
yield 2
def b():
yield 'A'
yield 'B'
yield a()
现在我想遍历 b()
并期望它应该输出 A B 1 2
。但不是。它给了这个。
In [11]: for i in b():
....: print i
....:
A
B
<generator object a at 0x10fc3ddc0>
如何获得所需的输出?
在python3.3+上,您可以使用yield from
:
def b():
yield 'A'
yield 'B'
yield from a()
在 python3.3 之前的版本中,您需要在循环中显式生成值:
def b():
yield 'A'
yield 'B'
for item in a():
yield item
在Python 3. 你可以使用yield from
def a():
yield 1
yield 2
def b():
yield 'A'
yield 'B'
yield from a()