我想要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
不起作用。
任何人都有更好的方法吗?
答案 0 :(得分:4)
你是否在defaultdict
之后?
from collections import defaultdict
x = defaultdict(dict)
x[3][4] = 'hi'
答案 1 :(得分:3)
使用setdefault
:
mydict.setdefault(upperkey, {})[index+1] = value
答案 2 :(得分:1)
您可以使用.setdefault(key[, default])
method
subdict = mydict.setdefault(upperkey, dict([(keys[index+1], value)]))
subdict[keys[index+1]]= value