[Python-ideas] dict.setdefault_call(), or API variations thereupon

Chris Angelico rosuav at gmail.com
Thu Nov 1 21:12:45 EDT 2018


On Fri, Nov 2, 2018 at 12:07 PM Alex Shafer <ashafer01 at 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


More information about the Python-ideas mailing list