python中的数据结构:添加或分配新字典的最佳方式或方法?

python中的数据结构:添加或分配新字典的最佳方式或方法?,python,data-structures,Python,Data Structures,我想要这个mydict={upperkey:{key:value,},…},}和键[key1,key2,key3…]。在开始时,我创建了: mydict = {} 然后: 这种方法工作得很好,但我发现它有点多余,使用mydict[upperkey]=dict[keys[index+1],value]不是很优雅。但是,除非mydict中已经存在字典,否则mydict[upperkey][keys[index+1]]]=value不起作用 有人有更好的方法吗?你是在追求defaultdict吗 你

我想要这个mydict={upperkey:{key:value,},…},}和键[key1,key2,key3…]。在开始时,我创建了:

mydict = {}
然后:

这种方法工作得很好,但我发现它有点多余,使用mydict[upperkey]=dict[keys[index+1],value]不是很优雅。但是,除非mydict中已经存在字典,否则mydict[upperkey][keys[index+1]]]=value不起作用

有人有更好的方法吗?

你是在追求defaultdict吗

你可以使用

使用:


什么是商品?从何处获取该值?它是第一个字典中的上键,然后在项中嵌套另一个字典。我编辑了它,所以现在应该更容易阅读了!你能提供一个你希望结果是什么样的例子吗?我还是不确定我是否理解你的要求。谢谢,我想这就是我要寻找的方式!defaultdict其实简单得多。哇,我以前从未听说过它:defaultdict通常比使用setdefault更快,而且更干净。好吧,不管怎样,你已经知道这两种方法都很好,所以你似乎已经知道这里涉及到的一切。。。不知道我想说服谁。
if upperkey not in mydict:
    mydict[upperkey]= dict([(keys[index+1], value)])
else:
    mydict[upperkey][keys[index+1]]= value
from collections import defaultdict
x = defaultdict(dict)
x[3][4] = 'hi'
subdict = mydict.setdefault(upperkey, dict([(keys[index+1], value)]))
subdict[keys[index+1]]= value
mydict.setdefault(upperkey, {})[index+1] = value