我想动态地在python中创建一个嵌套的dict。通过这样说: 给出
tuple1 = ('A','B'),
tuple2 = ('A','C'),
dict = {}
将dict
添加到dict = {'A': {'B':1}}
后,我想tuple1
赞dict
;
将dict = {'A': {'B' : 1, 'C' : 1}}
添加到tuple2
后再dict
这就是我尝试过的,我发现以下代码以递归方式创建嵌套dict。但我不确定如何动态添加节点并将其值增加1。
def incr_dict(dct, tpl):
if len(tpl) == 0:
dct = dct
else:
dct = {tpl[-1]:dct}
return incr_dict(dct, tpl[0:-1])
return dct
dct = {}
tpl = ('a', 'b', 'c')
dct = incr_dict(dct, tpl)
print(dct)
答案 0 :(得分:0)
在以下代码的末尾,您将获得一个d
字典{'A': {'B': 1, 'C': 1}}
;请注意,最外层的循环并不是绝对必要的,但它在这个实例中为我节省了一些输入。
tuple1 = ('A','B')
tuple2 = ('A','C')
d = {}
for l in [list(tuple1), list(tuple2)]:
for k in l:
v = l.pop()
if (d.has_key(k)):
if (d[k].has_key(v)):
d[k][v] = d[k][v]+1
else:
d[k][v] = 1
else:
d[k] = {}
d[k][v] = 1