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'
--
~Ethan~
signature.asc
Description: OpenPGP digital signature
-- https://mail.python.org/mailman/listinfo/python-list
