python动态构造嵌套dict
我想在python中动态创建一个嵌套的dict。他说: 给定 在将python动态构造嵌套dict,python,Python,我想在python中动态创建一个嵌套的dict。他说: 给定 在将tuple1添加到dict之后,我希望有dict像dict={'A':{'B':1}}}; 然后将tuple2添加到dict之后,dict={'A':{'B':1,'C':1}} 这就是我所尝试的,我发现下面的代码可以递归地创建嵌套dict。但我不知道如何动态添加节点,并将其值增加1 def incr_dict(dct, tpl): if len(tpl) == 0: dct = dct else:
tuple1
添加到dict
之后,我希望有dict
像dict={'A':{'B':1}}}
;
然后将tuple2
添加到dict之后,dict={'A':{'B':1,'C':1}}
这就是我所尝试的,我发现下面的代码可以递归地创建嵌套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)
在下面代码的末尾,您将有一个dictd
,它是{'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
maplist似乎是一个集合,a如何成为主键?我想他指的是{'a':'B'}
和{'a':'C'}
用python完成任何事情的最好方法是编写代码,你试过吗?@o11c现在对我来说更清楚了,不是这样。我想你可能想要集合。计数器,但我只是感到困惑。
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