并行迭代生成器

要并行迭代多个生成器,请使用 zip 内置:

for x, y in zip(a,b):
    print(x,y)

结果是:

1 x
2 y
3 z

在 python 2 中你应该使用 itertools.izip 代替。在这里我们还可以看到所有 zip 函数都会产生元组。

请注意,只要其中一个 iterables 耗尽项目,zip 就会停止迭代。如果你想迭代最长的可迭代次数,请使用 itertools.zip_longest()