Вот пример:Переменных и перебор кратных итераторов различной длины без остановки
for i in f('abcde','fg','hijk'):
print(i,end='')
#should print out
afhbgicjdke
Вот то, что я до сих пор:
def f(*args):
arg_list = [argument for argument in args]
iter_list = []
for arg in arg_list:
iter_list.append(iter(arg))
try:
while True:
for i in iter_list:
yield next(i)
except StopIteration:
iter_list.remove(i)
for i in reversed(iter_list):
yield next(i)
С тем же примером этого является то, что я распечатка:
afhbgicjd
Я не могу понять, как справиться с этой ошибкой StopIteration. Я пытаюсь реализовать это без использования itertools
Я пытаюсь реализовать это без itertools – dustinyourface
dustinyourface: В Python 3, это называется 'zip_longest()'. [Documentation] (https://docs.python.org/3/library/itertools.html#itertools.zip_longest) предоставляет чистый эквивалент Python (так же как и документация Python 2 для 'izip_longest()'. То же самое для 'chain()'. – martineau
@ dustinyourface Я обновил свой ответ – JuniorCompressor