Мой код работает до тех пор, пока генератор не будет исчерпан, и как только произойдет StopIteration, он перестанет печатать, тогда как я хочу, чтобы он продолжил работу с остальными генераторами и игнорировал исчерпанный:
Код: Выделить всё
def alternate_all(*args):
iter_list = []
for iterable in args:
iter_list.append(iter(iterable))
try:
while True:
for iterable in iter_list:
val = next(iter_list[0])
iter_list.append(iter_list.pop(0))
yield val
except StopIteration:
pass
if __name__ == '__main__':
for i in alternate_all('abcde','fg','hijk'):
print(i,end='')
Код: Выделить всё
afhbgic
Код: Выделить всё
afhbgicjdke
Подробнее здесь: https://stackoverflow.com/questions/697 ... list-of-ge