【发布时间】:2011-05-09 20:37:58
【问题描述】:
有谁知道 Python 中是否有用于无限嵌套字典的标准类?
我发现自己在重复这种模式:
d = defaultdict(lambda: defaultdict(lambda: defaultdict(int)))
d['abc']['def']['xyz'] += 1
如果我想添加“另一个层”(例如d['abc']['def']['xyz']['wrt']),我必须定义另一个 defaultdicts 嵌套。
为了概括这种模式,我编写了一个简单的类,它覆盖 __getitem__ 以自动创建下一个嵌套字典。
例如
d = InfiniteDict(('count',0),('total',0))
d['abc']['def']['xyz'].count += 0.24
d['abc']['def']['xyz'].total += 1
d['abc']['def']['xyz']['wrt'].count += 0.143
d['abc']['def']['xyz']['wrt'].total += 1
但是,有人知道这个想法的预先存在的实现吗?我试过谷歌搜索,但我不确定这会叫什么。
【问题讨论】:
标签: python dictionary nested infinite defaultdict