如何基于分隔字符串构造嵌套字典对象?

时间:2015-02-24 14:05:42

标签: python dictionary

我想从python字符串创建一个字典,如下所述:

'a/b/c/d/e' -> {a : {b : {c : {d : {e : {}}}}}}

我如何轻松实现这一目标?

1 个答案:

答案 0 :(得分:1)

一种简单的方法是,基于/拆分字符串,然后在每次处理密钥时使用reduce函数创建一个新字典,如下所示

>>> data, result = 'a/b/c/d/e', {}
>>> reduce(lambda x, y: x.setdefault(y, {}), data.split("/"), result)
{}
>>> result
{'a': {'b': {'c': {'d': {'e': {}}}}}}

每当调用dict.setdefault时,都会为当前密钥y分配一个新的字典对象,并返回新字典,并将其用作x中的{{1}}值。下一次迭代。