Setting default_factory of defaultdict to key
Ethan Furman
ethan at stoneleaf.us
Mon Dec 1 13:19:24 EST 2014
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~
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://mail.python.org/pipermail/python-list/attachments/20141201/6d8f7a36/attachment.sig>
More information about the Python-list
mailing list