Advanced Dictionary

Thomas Lehmann t.lehmann at rtsgroup.net
Wed Jun 16 06:49:02 EDT 2010


>
> class AutoValueDict(dict):
>     def __makeitem__(self, key):
>         return self.setdefault(key, {})
>
>     def __getitem__(self, key):
>         return self.get(key, self.__makeitem__(key))
>
> I would like to have a dictionary which ensures dictionaries as values
> except when I'm assigning another:
>
> dict["abc"]["xyz"]["123"]["456"] = 123
>
> How can I do this without many "if" and "else"?
>

Oh no... of course like this:
    return self.setdefault(key, AutoValueDict())




More information about the Python-list mailing list