PyWart: Itertools module needs attention
Ian Kelly
ian.g.kelly at gmail.com
Tue Sep 13 11:45:03 EDT 2011
On Mon, Sep 12, 2011 at 4:04 PM, rantingrick <rantingrick at gmail.com> wrote:
>
> ############################################################
> # Quote #
> ############################################################
> # The itertools module is great HOWEVER i believe most #
> # people are recreating the functionalities due to the #
> # insanely cryptic and/or missing examples from each #
> # method #
> ############################################################
Have you looked at the online itertools documentation at all?
http://docs.python.org/library/itertools.html
> py> ''.join(list(itertools.dropwhile(lambda x:x==" ", " hello
> word ")))
> 'hello word '
> py> ''.join(list(itertools.takewhile(lambda x:x==" ", " hello
> word ")))
> ' '
These are too complex to be good examples. Drop the lambda and
replace it with a built-in. Also, str.join is perfectly capable of
taking an iterator as its argument. There is no reason at all to
construct a list first.
> py> print itertools.compress.__doc__
> compress(data, selectors) --> iterator over selected data
> Return data elements corresponding to true selector elements.
> Forms a shorter iterator from selected data elements using the
> selectors to choose the data elements.
>
> ############################################################
> # Quote #
> ############################################################
> # WTF! Would you like to define a Python "selector". Could #
> # it be that we should be using "selector function" or #
> # "predicate function" instead? #
> ############################################################
Notice that it says "selector elements", not "selector functions".
You have misconstrued what this function does. Hint: it does not use
predicates at all.
I can agree though that this could probably use a simple example in
the doc string.
More information about the Python-list
mailing list