Python中的数据结构:最佳方法或如何添加或分配新字典



我想拥有这个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

最新更新