两个同步生成器函数,Python

Ben*_*all 1 python generator python-2.7

我有两个功能:

def a():
    while True:
        yield stuff

def b():
    while True:
        yield otherstuff
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

Suk*_*lra 6

您可以使用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
Run Code Online (Sandbox Code Playgroud)