[Python-ideas] grouping / dict of lists

Michael Selik mike at selik.org
Mon Jul 2 05:52:03 EDT 2018


On Mon, Jul 2, 2018 at 2:32 AM Nicolas Rolin <nicolas.rolin at tiime.fr> wrote:

> I think the current default quite weird, as it pretty much account to a
> count() of each key (which can be useful, but not really what I except from
> a grouping). I would prefer a default that might return an error to a
> default that says ok and output something that is not what I might want.
> For example the default could be such that grouping unpack tuples (key,
> value) from the iterator and do what's expected with it (group value by
> key). It is quite reasonable, and you have one example with (key, value) in
> your example, and no example with the current default. It also allows to
> use syntax of the kind
>
> >grouping((food_type, food_name for food_type, food_name in foods))
>
> which is pretty nice to have.
>

I'm of two minds on this point. First, I agree that it'd be nice to handle
the (key, value) pair case more elegantly. It comes to mind often when
writing examples, even if proportionally less in practice.

Second, I'll paraphrase "Jakob's Law of the Internet User Experience" --
users spend most of their time using *other* functions. Because
itertools.groupby and other functions in Python established a standard for
the behavior of key-functions, I want to keep that standard.

Third, some classes might have a rich equality method that allows many
interesting values to all wind up in the same group even if using the
default "identity" key-function.

Thanks for the suggestion. I'll include it in the PEP, at least for
documenting all reasonable options.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180702/d6d103b2/attachment.html>


More information about the Python-ideas mailing list