У меня есть следующий код:
# create an iterator
result = itertools.groupby(people, key=get_job)
# create copies
copy1, copy2, copy3, copy4, copy5 = itertools.tee(result, 5)
# run first copy
for key, group in copy1:
print(key, list(group))
# run second copy
for key, group in copy2:
print(key, list(group))
Что возвращается:
hacker [list here as expected]
banker [list here as expected]
trader [list here as expected]
hacker []
banker []
trader []
Итак, второй итератор не работает.
Я знаю, что итератор можно итерировать только один раз в python - но не стоит ли копировать именно для решения этой проблемы? Ie Я бы ожидал, что каждый копировать, чтобы иметь свою собственную жизнь, и иметь возможность перебирать ее независимо от того, перебрал ли я другие.
Либо мой код неверен, либо я неправильно понимаю цель копирования.