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

Ran*_*ndy 1 python dictionary

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

keys = ('a', 'b', 'c')
Run Code Online (Sandbox Code Playgroud)

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

d = {
    'a': {
          'b': {
                'c': {}
               }
          }
     }
Run Code Online (Sandbox Code Playgroud)

Ry-*_*Ry- 6

我想你可以用reduce:

def subdict(sub, key):
    return { key: sub }

d = reduce(subdict, reversed(keys), {})
Run Code Online (Sandbox Code Playgroud)

(在Python 3中,它是functools.reduce.)