If you use a generator instead of a string then you'll only loop once and
wait forever.

On Wed, Jan 19, 2022 at 11:49 AM jerome via code-quality <
code-quality@python.org> wrote:

> Hi everyone, first I'm not quite sure if this is the right place to make
> this kind of suggestion/ask question but, `itertools.cycle` makes a copy of
> the iterable its given and as the note says: this may require significant
> auxiliary storage. Maybe I don't see the reason why this is nescessary but,
> shouldn't this work just as well:
> ```
> def cycle(iterable):
>     # cycle('ABCD') --> A B C D A B C D A B C D ...
>     while iterable:
>         for element in iterable:
>             yield element
> ```
> Instead of the current:
>
> ```
> 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
> ```
> _______________________________________________
> code-quality mailing list -- code-quality@python.org
> To unsubscribe send an email to code-quality-le...@python.org
> https://mail.python.org/mailman3/lists/code-quality.python.org/
> Member address: dsta...@dstanek.com
>


-- 
david stanek
web: https://dstanek.com
twitter: https://twitter.com/dstanek
linkedin: https://www.linkedin.com/in/dstanek/
_______________________________________________
code-quality mailing list -- code-quality@python.org
To unsubscribe send an email to code-quality-le...@python.org
https://mail.python.org/mailman3/lists/code-quality.python.org/
Member address: arch...@mail-archive.com

Reply via email to