【发布时间】:2014-01-21 12:14:54
【问题描述】:
我有两个生成器,分别是 A() 和 B()。我想一起迭代两个生成器。比如:
for a,b in A(),B(): # I know this is wrong
#do processing on a and b
一种方法是将两个函数的结果存储在列表中,然后遍历合并的列表。像这样的:
resA = [a for a in A()]
resB = [b for b in B()]
for a,b in zip(resA, resB):
#do stuff
如果您想知道,那么是的,这两个函数都产生相同数量的值。
但我不能使用这种方法,因为A()/B() 返回的值太多。将它们存储在列表中会耗尽内存,这就是我使用生成器的原因。
有没有办法同时遍历两个生成器?
【问题讨论】:
标签: python loops for-loop generator yield