我想拥有这个mydict = {upperkey:{key:value,...},...}
和keys[key1, key2, key3...]
。一开始我创建了:
mydict = {}
然后:
if upperkey not in mydict:
mydict[upperkey]= dict([(keys[index+1], value)])
else:
mydict[upperkey][keys[index+1]]= value
这种方式工作正常,但我发现它有点多余,使用mydict[upperkey]= dict([(keys[index+1], value)])
只是不是很优雅。但是,除非 mydict 中已经存在字典,否则mydict[upperkey][keys[index+1]] = value
不起作用。
有人有更好的方法吗?
你在defaultdict
之后吗?
from collections import defaultdict
x = defaultdict(dict)
x[3][4] = 'hi'
使用 setdefault
:
mydict.setdefault(upperkey, {})[index+1] = value
您可以使用.setdefault(key[, default])
方法
subdict = mydict.setdefault(upperkey, dict([(keys[index+1], value)]))
subdict[keys[index+1]]= value