[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
         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