gpt4 book ai didi

python - 如何将列表转换为层次结构字典

转载 作者:太空宇宙 更新时间:2023-11-03 12:44:15 24 4
gpt4 key购买 nike

我如何将 ["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)

谢谢!

最佳答案

一个递归的解决方案

def dictify(d):
if len(d) == 1:
return {d[0]}
else:
return {d[0]: dictify(d[1:])}

例如

>>> dictify(["one","two","three","four"])
{'one': {'two': {'three': {'four'}}}}

请注意,在上面的解决方案中,最里面的对象实际上是一个set,而不是一个dict。如果您希望所有对象都是 dict 那么您可以将解决方案修改为

def dictify(d):
if len(d) == 1:
return {d[0]: None}
else:
return {d[0]: dictify(d[1:])}

导致

>>> dictify(["one","two","three","four"])
{'one': {'two': {'three': {'four': None}}}}

关于python - 如何将列表转换为层次结构字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45286157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com