Skip to main content
 首页 » 编程设计

python之两个同步生成器函数,Python

2025年05月04日14luoye11

我有两个功能:

def a(): 
    while True: 
        yield stuff 
 
def b(): 
    while True: 
        yield otherstuff 

我想要一个循环,它从存储在 a for a() 和 b for b() 中的每个函数中收集一个 yield;例如。如果我嵌套调用它们的 for 循环,它会在每次第一个循环循环时重新启动第二个生成器。我能帮忙吗?

谢谢!

请您参考如下方法:

你可以使用 itertools.izip(...)将值压缩在一起。

>>> def a(): 
        for i in xrange(10): 
            yield i 
 
 
>>> def b(): 
        for i in xrange(10, 20): 
            yield i 
 
 
>>> from itertools import izip 
>>> for i, j in izip(a(), b()): 
        print i, j 
 
 
0 10 
1 11 
2 12 
3 13 
4 14 
5 15 
6 16 
7 17 
8 18 
9 19