我想创建一个3层字典。所有键和值都是字符串,只有它们在字典中的存在才是重要的(我想删除重复,顺序并不重要)。 所以这就是我写的功能:
def UpdateDic3(key1,key2,key3,val,dic):
if not key1 in dic.keys():
dic[key1][key2][key3] = {val}
elif not key2 in dic[key1].keys():
dic[key1][key2][key3] = {val}
elif not key3 in dic[key1][key2].keys():
dic[key1][key2][key3] = {val}
else:
dic[key1][key2][key3].add(val)
return dic
并搜索多层词典我发现了这个:
l=lambda:defaultdict(l)
src_tree =l()
src_tree = UpdateDic3(k1,k2,k3,value,src_tree)
有没有比l=lambda:defaultdict(l)
制作3层字典更好的方法?
我需要一个树形结构,可以访问每个图层的键。
答案 0 :(得分:2)
只需使用一个充满元组的集合。
src_tree = set()
str_tree.add((k1, k2, k3))
答案 1 :(得分:0)
def multiple_dictionary(k, v):
if len(k) > 1:
v = multiple_dictionary(k[1:], v)
return {k[0]: v}