[Python-ideas] __len__() for map()
Steven D'Aprano
steve at pearwood.info
Sat Dec 1 12:23:07 EST 2018
On Sat, Dec 01, 2018 at 12:06:23PM -0500, David Mertz wrote:
> Given that the anti-fix is just as simple and currently available, I don't
> see why we'd want a change:
>
> # map->sequence
> mo = list(mo)
>
> FWIW, I actually do write exactly that code fairly often, it's not hard.
Sure, but that makes a copy of the original data and means you lose the
benefit of map being lazy.
Naturally we will always have the ability to call list and eagerly
convert to a sequence, but these proposals are for a way of getting the
advantages of sequence-like behaviour while still keeping the advantages
of laziness.
With iterators, the only way to get that advantage of laziness is
to give up the ability to query length, random access to items, etc even
when the underlying data is a sequence and that information would have
been readily available. We can, at least sometimes, have the best of
both worlds. Maybe.
--
Steve
More information about the Python-ideas
mailing list