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/