On 13 июл, 14:12, Peter Otten <[EMAIL PROTECTED]> wrote: > Yosifov Pavel wrote: > > Whats is the way to clone "independent" iterator? I can't use tee(), > > because I don't know how many "independent" iterators I need. copy and > > deepcopy doesn't work... > > There is no general way. For "short" sequences you can store the items in a > list which is also the worst-case behaviour of tee(). > > What are you trying to do? > > Peter
I try to generate iterators (iterator of iterators). Peter, you are right! Thank you. For example, it's possible to use something like this: def cloneiter( it ): """return (clonable,clone)""" return tee(it) and usage: clonable,seq1 = cloneiter(seq) ...iter over seq1... then clone again: clonable,seq2 = cloneiter(clonable) ...iter over seq2... Or in class: class ReIter: def __init__( self, it ): self._it = it def __iter__( self ): self._it,ret = tee(self._it) return ret and usage: ri = ReIter(seq) ...iter over ri... ...again iter over ri... ...and again... But I think (I'm sure!) it's deficiency of Python iterators! They are not very good... --Pavel -- http://mail.python.org/mailman/listinfo/python-list