У меня есть два генератора: 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()
возвращает столько значений. Хранение их в списке исчерпало память, поэтому я использую генераторы.
Можно ли каким-либо образом перекрыть оба генератора?