感谢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!