如何基于分隔字符串构造嵌套字典对象?
How can I construct a nested dictionary object based on a delimited string?
我想从 python 字符串创建字典,如下所述:
'a/b/c/d/e' -> {a : {b : {c : {d : {e : {}}}}}}
我怎样才能轻松做到这一点?
一种简单的方法是,根据/
拆分字符串,然后使用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
值在下一次迭代中。
我想从 python 字符串创建字典,如下所述:
'a/b/c/d/e' -> {a : {b : {c : {d : {e : {}}}}}}
我怎样才能轻松做到这一点?
一种简单的方法是,根据/
拆分字符串,然后使用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
值在下一次迭代中。