Iterator length

bearophileHUGS at lycos.com bearophileHUGS at lycos.com
Fri Jan 19 08:04:01 EST 2007


Steven D'Aprano:
> > s = "aaabbbbbaabbbbbb"
> > from itertools import groupby
> > print [(h,leniter(g)) for h,g in groupby(s)]
>
> s isn't an iterator. It's a sequence, a string, and an iterable, but not
> an iterator.

If you look better you can see that I use the leniter() on g, not on s.
g is the iterator I need to compute the len of.


> I hope you know what sequences and strings are :-)

Well, I know little still about the C implementation of CPython
iterators :-)

But I agree with the successive things you say, iterators may be very
general things, and there are too many drawbacks/dangers, so it's
better to keep leniter() as a function separated from len(), with
specialized use.

Bye and thank you,
bearophile




More information about the Python-list mailing list