Извлечь список из itertools.cycle

У меня есть класс, содержащий экземпляр itertools.cycle, который я хотел бы скопировать. Единственный подход (, который я могу придумать ), заключается в извлечении исходного итерируемого объекта (, который был списком ), и сохранении позиции, в которой находится цикл.

К сожалению, я не могу получить список, который я использовал для создания экземпляра цикла, и, похоже, нет очевидного способа сделать это:

import itertools
c = itertools.cycle([1, 2, 3])
print dir(c)
['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', 
 '__hash__', '__init__', '__iter__', '__new__', '__reduce__', 
 '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', 
 '__subclasshook__', 'next']

Я могу придумать несколько разумных причин, почему это было бы запрещено для некоторых типов входных итераций, но для кортежа или, возможно, даже для списка (изменчивость может быть проблемой ), я не понимаю, почему это было бы невозможно.

Кто-нибудь знает , можно ли извлечь не -бесконечную итерацию из itertools.cycleэкземпляра. Если нет, кто-нибудь знает , почему эта идея плоха?

5
задан pelson 20 August 2012 в 12:45
поделиться