我需要创建一个这样的结构:
D = {i:{j:{k:0,l:1,m:2}},a:{b:{c:0,d:4}}}
所以这可以使用defaultdict完成:
D = defaultdict(defaultdict(Counter))
我如何在这里使用setdefault?
编辑:
是否可以组合setdefault和defaultdict?
答案 0 :(得分:0)
要使用setdefault()
构建多级字典,您需要重复访问这样的键:
>>> from collections import Counter
>>> d = {}
>>> d.setdefault("i", {}).setdefault("j", Counter())
Counter()
>>> d
{'i': {'j': Counter()}}
要概括新键的用法,您可以使用函数:
def get_counter(d, i, j):
return d.setdefault(i, {}).setdefault(j, Counter())