osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

itertools cycle() docs question


In the docs for itertools.cycle() there is
a bit of equivalent code given:

     def cycle(iterable):
         # cycle('ABCD') --> A B C D A B C D A B C D ...
         saved = []
         for element in iterable:
             yield element
             saved.append(element)
         while saved:
             for element in saved:
                 yield element


Is that really how it works?  Why make
the copy of the elements?  This seems
to be equivalent:


     def cycle(iterable):
         while iterable:
             for thing in iterable:
                 yield thing