从字符串字符递归构建字典

时间:2019-01-08 17:19:05

标签: python python-2.7 dictionary recursion

我正在为特定的数据结构开发一种压缩算法,其中的一部分需要将字符串更改为字典,如下所示:

    "abc" => {'a':{'b':{'c':{}}}

其中是一组基于单词字母的嵌套词典。

如何在python中以递归方式进行此操作?

3 个答案:

答案 0 :(得分:4)

您可以对列表切片使用递归:

def to_dict(d):
  return {} if not d else {d[0]:to_dict(d[1:])}

print(to_dict('abc'))

输出:

{'a': {'b': {'c': {}}}}

答案 1 :(得分:2)

这是使用reduce的解决方案:

from functools import reduce

seq = 'abc'
result = reduce(lambda value, key: { key : value }, reversed(seq), {})

print(result)

输出

{'a': {'b': {'c': {}}}}

答案 2 :(得分:1)

这是一种方式:

s = 'abc'
d = {}
current = d
for c in s:
    current = current.setdefault(c, {})
print(d)
# {'a': {'b': {'c': {}}}}