我想从包含密钥的任意元组/列表创建一个空的嵌套字典。我试图找到一种在Python中执行此操作的简单方法。它看起来像集合defaultdict应该处理的东西,但我似乎无法弄明白。
keys = ('a', 'b', 'c')
一本字典最终看起来像这样:
d = {
'a': {
'b': {
'c': {}
}
}
}
答案 0 :(得分:6)
我想你可以用reduce
:
def subdict(sub, key):
return { key: sub }
d = reduce(subdict, reversed(keys), {})
(在Python 3中,它是functools.reduce
。)
答案 1 :(得分:0)
def nested_dict(keys):
if len(keys) == 1:
return {keys[0]: {}}
return {keys[0]: nested_dict(keys[1:])}