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