从密钥列表创建嵌套字典的方法

时间:2013-12-04 22:04:40

标签: python dictionary

我想从包含密钥的任意元组/列表创建一个空的嵌套字典。我试图找到一种在Python中执行此操作的简单方法。它看起来像集合defaultdict应该处理的东西,但我似乎无法弄明白。

keys = ('a', 'b', 'c')

一本字典最终看起来像这样:

d = {
    'a': {
          'b': {
                'c': {}
               }
          }
     }

2 个答案:

答案 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:])}