Python从另一个迭代中产生所有价值
示例
yieldfrom如果要从另一个可迭代对象中产生所有值,请使用:
def foob(x):
yield from range(x * 2)
yield from range(2)
list(foob(5)) #[0、1、2、3、4、5、6、7、8、9、0、1]这也适用于发电机。
def fibto(n):
a, b = 1, 1
while True:
if a >= n: break
yield a
a, b = b, a + b
def usefib():
yield from fibto(10)
yield from fibto(20)
list(usefib()) #[1、2、3、5、8、1、1、2、3、5、8、13]