Python 创建多层动态字典

1 投票
2 回答
2304 浏览
提问于 2025-04-27 12:34

我想创建一个三层的字典。字典里的所有键和值都是字符串,重要的是它们是否存在于字典中(我想去掉重复的,顺序也不重要)。所以我写了这个函数:

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) 更好的方法来创建一个三层字典呢?

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

暂无标签

2 个回答

0

在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这种情况下,我们需要去查找原因,看看哪里出了问题。通常,我们可以通过查看错误信息来帮助我们找到问题所在。

错误信息就像是程序给我们的提示,它告诉我们哪里出错了,可能是什么原因导致的。理解这些错误信息是解决问题的第一步。

有时候,错误信息可能会比较复杂,特别是对于刚开始学习编程的人来说。这时候,我们可以尝试在网上搜索这些错误信息,看看其他人是怎么解决的。很多时候,别人遇到过类似的问题,并且已经分享了解决方案。

另外,保持代码的整洁和注释也是很重要的。这样在遇到问题的时候,我们可以更容易地找到出错的地方,理解代码的逻辑。

总之,遇到问题不要慌,仔细查看错误信息,善用网络资源,保持代码整洁,慢慢就能找到解决办法。

def multiple_dictionary(k, v): 
    if len(k) > 1: 
        v = multiple_dictionary(k[1:], v) 
    return {k[0]: v}
2

只需要用一个包含元组的集合就可以了。

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

撰写回答