我正在为特定的数据结构开发一种压缩算法,其中的一部分需要将字符串更改为字典,如下所示:
"abc" => {'a':{'b':{'c':{}}}
其中是一组基于单词字母的嵌套词典。
如何在python中以递归方式进行此操作?
答案 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': {}}}}