【发布时间】:2017-07-25 01:18:28
【问题描述】:
如何将["one","two","three","four"] 之类的列表转换为{"one": {"two": {"three":{"four"}}}} 之类的列表,其中列表中的每个项目都是字典中其他元素的后代?我认为它可以在递归函数中完成,但我不确定如何。
这是我尝试过的:
l = ["one","two","three","four"]
d = {}
for v in l[:-1]:
d[v] = {l}
d = d[v]
print(d)
谢谢!
【问题讨论】:
-
注意,你的最后一个元素是
set而不是dict。 -
由于python没有尾调用优化,当输入的长度太长而无法递归时,您可能希望重构为非递归或正确处理。见stackoverflow.com/questions/13591970/…
标签: python