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 に答える