0

我想要这个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[upperkey][keys[index+1]] = value除非 mydict 中已经存在字典,否则它不起作用。

有人有更好的方法吗?

4

3 回答 3

4

你在追求defaultdict吗?

from collections import defaultdict
x = defaultdict(dict)
x[3][4] = 'hi'
于 2012-12-18T04:40:07.050 回答
3

使用setdefault

mydict.setdefault(upperkey, {})[index+1] = value
于 2012-12-18T04:49:27.037 回答
1

您可以使用该.setdefault(key[, default])方法

subdict = mydict.setdefault(upperkey, dict([(keys[index+1], value)]))
subdict[keys[index+1]]= value
于 2012-12-18T04:48:19.770 回答