Setting default_factory of defaultdict to key
Larry Martell
larry.martell at gmail.com
Mon Dec 1 13:23:47 EST 2014
More information about the Python-list mailing list
Mon Dec 1 13:23:47 EST 2014
- Previous message (by thread): Setting default_factory of defaultdict to key
- Next message (by thread): Setting default_factory of defaultdict to key
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Mon, Dec 1, 2014 at 1:19 PM, Ethan Furman <ethan at stoneleaf.us> wrote: > On 12/01/2014 10:05 AM, Larry Martell wrote: >> >> Is there a way to set the default_factory of defaultdict so that >> accesses to undefined keys get to set to the key? > > You need to subclass and modify __missing__ to actually pass along the key: > > --> class defaultdictkey(defaultdict): > ... def __missing__(self, key): > ... self[key] = self.default_factory(key) > ... return self[key] > ... > > and in action: > > --> huh = defaultdictkey(lambda k: k) > --> huh > defaultdict(<function <lambda> at 0x7fe1305de3f0>, {}) > --> huh['x'] > 'x' > --> huh['x'] > 'x' > --> huh.get('y') > --> huh['y'] > 'y' > --> huh.get('y') > 'y' Perfect. Thanks much.
- Previous message (by thread): Setting default_factory of defaultdict to key
- Next message (by thread): Setting default_factory of defaultdict to key
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list