我想从python字符串创建一个字典,如下所述:
'a/b/c/d/e' -> {a : {b : {c : {d : {e : {}}}}}}
我如何轻松实现这一目标?
答案 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}}值。下一次迭代。