Python创建多层动态字典

标签 python dictionary

我想创建一个三层字典。所有键和值都是字符串,只有它们在字典中的存在才重要(我想删除重复,顺序并不重要)。 这就是我写的函数:

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 层字典吗?

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

最佳答案

只需使用一个充满元组的集合。

src_tree = set()
str_tree.add((k1, k2, k3))

关于Python创建多层动态字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26363124/

相关文章:

python - 在 flask 中运行破折号应用程序

python - Pandas 用多列填充 DataFrame 中缺失的日期

python - 解析 JSON 时字符串索引必须是整数 - python

c# - 将 Dictionary<string, int> 转换为 Dictionary<int, List<string>>

c++ - 计算一个词在 map 中出现的次数 - 使用 transform() - 调用不匹配

python - 其他用户可以在 Hexchat 中看到 python 打印的语句吗?

python - Django - 仅当两个对象的外键不同时,它们的字段才能具有相同的值

python - 在 Django 中将数据库对象转换为字符串

python - 计算 python 中字典之间键重复的次数

java - 流 'map'可以用于这样的处理吗?