Python中带附加列表的嵌套字典的自动生成

2024-04-19 09:32:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试为python字典实现自动激活。我也提到了下面的链接,这有助于我实现我想要的,但部分。你知道吗

What is the best way to implement nested dictionaries?

How to implement autovivification for nested dictionary ONLY when assigning values?

这就是我一直在尝试的例子

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}}}

但是如何实现这一点,这在集合.defaultdict

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

我不想实现defaultdict,因为它的输出是不可读的,而且它不能与pickle一起工作。你知道吗

如有任何建议,将不胜感激。你知道吗

谢谢


Tags: tokeyselffor字典value链接my