I had actually managed to miss collections.defaultdict!

I'd like to instead propose that a reference to that be added to the
dict.setdefault docs. I can't imagine I'm the only one that has missed this.


Date: Fri, 2 Nov 2018 12:12:45 +1100
> From: Chris Angelico <ros...@gmail.com>
> To: python-ideas <python-ideas@python.org>
> Subject: Re: [Python-ideas] dict.setdefault_call(), or API variations
>         thereupon
> Message-ID:
>         <
> captjjmqg_qtk3ofr+4vaaana7jxjhjhlpnx6efezx5n4ttt...@mail.gmail.com>
> Content-Type: text/plain; charset="UTF-8"
>
> On Fri, Nov 2, 2018 at 12:07 PM Alex Shafer <ashafe...@gmail.com> wrote:
> > Other APIs I've considered for this are a new keyword argument to the
> existing `setdefault()`, or perhaps more radically for Python, a new
> keyword argument to the `dict()` constructor that would get called as an
> implicit default for `setdefault()` and perhaps used in other scenarios
> (essentially defining a type for dict values).
> >
>
> The time machine has been put to good use here. Are you aware of
> __missing__ and collections.defaultdict? You just create a defaultdict
> with a callable (very common to use a class like "list"), and any time
> you try to use something that's missing, it'll call that to generate a
> value.
>
> from collections import defaultdict
> d = defaultdict(list)
> for category, item in some_stuff:
>     d[category].append(item)
>
> Easy way to group things into their categories.
>
> ChrisA
>
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to