遍历多个生成器的多个值可以使用zip函数和循环结合的方式来实现。下面是一个代码示例:
def generator1():
yield 1
yield 2
yield 3
def generator2():
yield 'a'
yield 'b'
yield 'c'
# 创建两个生成器
gen1 = generator1()
gen2 = generator2()
# 遍历多个生成器的多个值
for value1, value2 in zip(gen1, gen2):
print(value1, value2)
运行以上代码,输出结果为:
1 a
2 b
3 c
在代码中,我们定义了两个生成器函数generator1
和generator2
,分别生成一系列数字和字母。然后,我们创建了两个生成器gen1
和gen2
,分别用来产生这些数字和字母。最后,我们使用zip
函数将两个生成器打包在一起,并通过循环遍历它们的值。
需要注意的是,生成器在遍历后会被耗尽,因此如果两个生成器的长度不一致,遍历会在较短的那个生成器耗尽后停止。如果要遍历所有生成器的值,可以使用itertools.zip_longest
函数代替zip
函数,它会在较短的生成器耗尽后继续遍历较长生成器,并用None
填充缺失的值。
下一篇:遍历多个数据集没有结果