当前位置:  开发笔记 > 编程语言 > 正文

需要从平面的dict创建一个分层的dict

如何解决《需要从平面的dict创建一个分层的dict》经验,为你挑选了1个好方法。

我有一个字典,看起来像这样:

{
    'foo': {
        'opt1': 1,
        'opt2': 2,
        },
    'foo/bar': {
        'opt3': 3,
        'opt4': 4,
        },
    'foo/bar/baz': {
        'opt5': 5,
        'opt6': 6,
        }
    }

我需要让它看起来像:

{
    'foo': {
        'opt1': 1,
        'opt2': 2,
        'bar': {
            'opt3': 3,
            'opt4': 4,
            'baz': {
                'opt5': 5,
                'opt6': 6,
                }
            }
        }
    }

我应该指出,可以并且将会有多个顶级键(在这种情况下为'foo').我可能会把东西放在一起以获得我需要的东西,但我希望有一个更有效的解决方案.



1> Armin Ronach..:

像这样:

def nest(d):
    rv = {}
    for key, value in d.iteritems():
        node = rv
        for part in key.split('/'):
            node = node.setdefault(part, {})
        node.update(value)
    return rv

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有