В python я попытался создать копию моего итератора с использованием назначения, однако он создает копию итератора, ссылающуюся на оригинальный итератор. Например:Как создать копию итератора python?
my_list = [5, 4, 3,2]
first_it = iter(my_list)
second_it = first_it
print next(first_it) #it will print 5
print next(second_it) #it will print 4
print next(first_it) #it will print 3
Как вы видите в примере first_it и second_it оба относятся к одному итераторному объекту. Возможно ли создать копию объекта итератора, которая не относится к исходному объекту?
Примечание Этот вопрос о том, как создать копию объекта итератора по значению. Поэтому не обращайте внимание на решения for item in my_list:
.
Заранее спасибо
Я попытался использовать 'copy.copy()' и он тоже работал. Может быть, есть скрытый улов? –
@ Jean-FrançoisFabre: Это не сработает для генератора. Попробуйте с генератором, который использует 'while True: yield random.random()' например. –
относящийся к: «вы не можете развести генератор», вероятно. –