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

时间:2012-12-18 04:21:59

标签: python data-structures

我想要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不起作用。

任何人都有更好的方法吗?

3 个答案:

答案 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