[Python-Dev] Rationale behind lazy map/filter

R. David Murray rdmurray at bitdance.com
Tue Oct 13 10:51:41 EDT 2015


On Tue, 13 Oct 2015 14:59:56 +0300, Stefan Mihaila <stefanmihaila91 at gmail.com> wrote:
> Maybe it's just python2 habits, but I assume I'm not the only one
> carelessly thinking that "iterating over an input a second time will 
> result in the same thing as the first time (or raise an error)".

This is the way iterators have always worked.  The only new thing is that
in python3 some things that used to be iter*ables* (lists, usually) are
now iter*ators*.  Yes it is a change in mindset *with regards to those
functions* (and yes I sometimes find it annoying), but it is actually
more consistent than it was in python2, and thus easier to generalize
your knowledge about how python works instead of having to remember
which functions work which way.  That is, if you need to iterate it
twice, turn it into a list first.

--David


More information about the Python-Dev mailing list