Zapętl nad dwoma generatorami razem
Mam dwa generatoryA()
iB()
. Chcę wykonać iterację obu generatorów razem. Coś jak:
for a,b in A(),B(): # I know this is wrong
#do processing on a and b
Jednym ze sposobów jest przechowywanie wyników obu funkcji na listach, a następnie zapętlenie połączonej listy. Coś takiego:
resA = [a for a in A()]
resB = [b for b in B()]
for a,b in zip(resA, resB):
#do stuff
Jeśli się zastanawiasz, to tak, obie funkcje dają taką samą liczbę wartości.
Ale nie mogę użyć tego podejścia, ponieważA()/B()
zwraca tak wiele wartości. Przechowywanie ich na liście wyczerpałoby pamięć, dlatego używam generatorów.
Czy jest jakiś sposób na jednoczesne zapętlenie obu generatorów?