相关疑难解决方法(0)

Python中的多个"collection.defaultdict"级别

感谢SO的一些优秀人员,我发现了collections.defaultdict可见性和速度提供的可能性.我已经把它们用于成功.

现在我想实现三个级别的词典,两个顶级词典defaultdict和最低词典int.我找不到合适的方法来做到这一点.这是我的尝试:

from collections import defaultdict
d = defaultdict(defaultdict)
a = [("key1", {"a1":22, "a2":33}),
     ("key2", {"a1":32, "a2":55}),
     ("key3", {"a1":43, "a2":44})]
for i in a:
    d[i[0]] = i[1]
Run Code Online (Sandbox Code Playgroud)

现在这可行,但以下,这是所需的行为,不会:

d["key4"]["a1"] + 1
Run Code Online (Sandbox Code Playgroud)

我怀疑我应该声明第二级defaultdict是类型的int,但我没有找到在哪里或如何这样做.

defaultdict首先使用的原因是避免为每个新密钥初始化字典.

还有更优雅的建议吗?

谢谢pythoneers!

python dictionary nested

169
推荐指数
5
解决办法
6万
查看次数

标签 统计

dictionary ×1

nested ×1

python ×1