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]

现在这可以工作,但是以下是所需的行为,但无效:


d["key4"]["a1"] + 1

我怀疑我应该在某个地方声明第二层defaultdict是type int,但是我没有找到在哪里或如何去做。


我defaultdict首先使用的原因是避免必须为每个新键初始化字典。


还有更优雅的建议吗?


谢谢pythoneers!


白衣非少年
浏览 363回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python