[Python-Dev] dict.addlist() (original) (raw)
Nick Coghlan ncoghlan at iinet.net.au
Tue Jan 20 10:14:12 EST 2004
- Previous message: [Python-Dev] dict.addlist()
- Next message: [Python-Dev] dict.addlist()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Barry Warsaw wrote:
On Tue, 2004-01-20 at 09:25, Kevin Jacobs wrote:
-1: I use .setdefault all the time with non-list default arguments. The dict interface is getting complex enough that adding more clutter will make it even harder to teach optimal idiomatic Python to newbies. I completely agree with both points.
As a relative newbie (and not having done much coding in recent months), I have to say it took me a while to figure out what "d.setdefault(k, []).append(v)" actually did (I had previously only encountered dict.getdefault, and the meaning of dict.setdefault was not immediately obvious to me).
If I saw "d.addlist(some_variable, some_other_variable)", I certainly would not automatically interpret it as "append some_other_variable to the value keyed by some_variable, creating that value as the empty list if it is not present". At least the current approach breaks this into two steps, and gave me a chance to figure it out without diving into the docs to find out what the method does.
This does seem to be another example where a 'defaulting dictionary' with a settable factory method would seem to be useful.
Then:
dd = defaultingdict(factory=list) ...other code uses dict... dd[k].append(v)
(As others have pointed out, this can't be a keyword argument on standard dictionaries without interfering with the current automatic population of the created dictionary with the keyword dictionary)
Regards, Nick.
-- Nick Coghlan | Brisbane, Australia Email: ncoghlan at email.com | Mobile: +61 409 573 268
- Previous message: [Python-Dev] dict.addlist()
- Next message: [Python-Dev] dict.addlist()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]