首页 > 解决方案 > 嵌套字典的自动激活,其中包含要在 Python 中附加的列表

问题描述

我一直在尝试为 python 字典实现自动生存。我还参考了以下链接,这些链接帮助我实现了我想要的,但只是部分实现了。

实现嵌套字典的最佳方法是什么?

仅在分配值时如何为嵌套字典实现自动生存?

这是我一直在尝试的示例

class MyDict(dict):

    def __setitem__(self, keys, value):
       if not isinstance(keys, tuple):
           return dict.__setitem__(self, keys, value)

       for key in keys[:-1]:
           self = self.setdefault(key, {})
       dict.__setitem__(self, keys[-1], value)

这适用于正常情况,例如

my_dict = MyDict()
my_dict['a','b','c']=10

这导致: {'a': {'b': {'c': 10}}}

但是我如何实现这一点,这很可能与collections.defaultdict

my_dict['a']['b']['c'].append(10)

我不想实现defaultdict,因为它是非人类可读的输出,而且它不能与 pickle 一起使用。

任何建议将不胜感激。

谢谢

标签: pythonpython-2.7

解决方案


推荐阅读