Python 从字符串生成嵌套字典
我想从字符串中获取一个嵌套字典,该字符串可以通过分隔符拆分,Python 从字符串生成嵌套字典,python,dictionary,Python,Dictionary,我想从字符串中获取一个嵌套字典,该字符串可以通过分隔符拆分,: s='A:B:C:D' v=['some','object'] desired={'A':{'B':{'C':{'D':v}}}} 是否有一种“pythonic”方法来生成此函数?您可以编写一个递归函数来执行此操作: >>> s = 'A:B:C:D' >>> v = ['some','object'] >>> def generate_dict(keys, val): ...
:
s='A:B:C:D'
v=['some','object']
desired={'A':{'B':{'C':{'D':v}}}}
是否有一种“pythonic”方法来生成此函数?您可以编写一个递归函数来执行此操作:
>>> s = 'A:B:C:D'
>>> v = ['some','object']
>>> def generate_dict(keys, val):
... if len(keys) == 1:
... return {keys[0]: val}
... return {keys[0]:generate_dict(keys[1:], val)}
...
>>> generate_dict(s.split(':'), v)
{'A': {'B': {'C': {'D': ['some', 'object']}}}}
以下是迭代解决方案:
result = {}
s = 'A:B:C:D'
delimiter = ":"
value = ['some', 'object']
temp = result
key_list = s.split(delimiter)
for i, key in enumerate(key_list):
if i != len(key_list) - 1:
temp[key] = {}
temp = temp[key]
continue
temp[key] = value
print(result)