python - 无限嵌套的 defaultdict 是否有标准类?

标签 python dictionary nested infinite defaultdict

有谁知道 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

但是,有人知道这个想法的预先存在的实现吗?我试过谷歌搜索,但我不确定这会叫什么。

最佳答案

我认为这个单行代码是一个近乎完美的解决方案:

>>> from collections import defaultdict
>>> infinite_defaultdict = lambda: defaultdict(infinite_defaultdict)
>>> d = infinite_defaultdict() 
>>> d['x']['y']['z'] = 10

由 Raymond Hettinger 在 Twitter 上发布(https://twitter.com/raymondh/status/343823801278140417)

关于python - 无限嵌套的 defaultdict 是否有标准类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4178249/

相关文章:

javascript - 如何在 OpenLayers 3 中使用我自己的类 myMap(使用继承)初始化 ol.map?

Python 创建列表字典

c++ - 私有(private)嵌套类中的 friend

python - 将 NumPy 数组转换为列表时 float 不一致

python - 无法将 tensorflow 卡住图转换为 pbtxt 文件

python dataframe 到具有多列键和值的字典

PowerShell查询哈希表的嵌套子元素

嵌套回调的Java模式?

python - 我如何找到为什么 python 脚本在不同机器上的运行时间明显不同?

python - 如何在 Python 中使用 BeautifulSoup 提取标签内的文本?