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)