Python创建多层动态字典

时间:2014-10-14 14:18:26

标签: python dictionary

我想创建一个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层字典更好的方法?

我需要一个树形结构,可以访问每个图层的键。

2 个答案:

答案 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}