W pythonie próbowałem utworzyć kopię mojego iteratora za pomocą przypisania, ale utworzyłem kopię iteratora, która odwołuje się do oryginalnego iteratora. Na przykład:Jak utworzyć kopię iteratora Pythona?
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
Jak widać w przykładzie first_it i second_it oba odnoszą się do tego samego obiektu iteratora. Czy jest możliwe utworzenie kopii obiektu iteratora, który nie ma odniesienia do oryginalnego obiektu?
Uwaga To pytanie jest o tym, jak tworzyć kopię obiektu iteracyjnej przez wartość. Więc nie wspominaj o takich rozwiązaniach jak for item in my_list:
.
Z góry dziękuję
Próbowałem z 'copy.copy()' i to działało. Może jest ukryty haczyk? –
@ Jean-FrançoisFabre: To nie zadziała dla generatora. Spróbuj z generatorem, który na przykład używa 'while while True: yield random.random()'. –
związane z: "nie można zaliczyć generatora" prawdopodobnie. –