我有一个包含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
可以从实例中提取非无限迭代。如果没有,有人知道为什么这个想法是坏的吗?