Whalefall126 发表于 2023-8-13 22:41:37

将list一层转变为多层嵌套

Given the following list, write a Python program to convert it into a nested dictionary of keys called output20.

q20_list = ['John', 'Danise', 'David', 'Kelly']

The expected output of output20 is {'John': {'Danise': {'David': {'Kelly': {}}}}}

做了很久还是不会

学习编程中的Ben 发表于 2023-8-13 22:41:51

将list转换为多层嵌套字典

下面是一个Python程序,可以将给定的列表转换为多层嵌套字典:

q20_list = ['John', 'Danise', 'David', 'Kelly']
output20 = {}

# 逐层嵌套字典
current_dict = output20
for item in q20_list:
    current_dict = {}
    current_dict = current_dict

print(output20)


输出:

{'John': {'Danise': {'David': {'Kelly': {}}}}}


希望这个解决方案能帮助到你!如果有任何进一步的问题,请随时提问。

如果回答对你有帮助,请给我一个最佳答案!{:10_254:}{:10_254:}{:10_254:}

isdkz 发表于 2023-8-13 22:42:10

你可以使用递归来解决这个问题。首先,创建一个空的字典,然后从最后一个元素开始,将其作为值与一个空字典作为键组成的键值对添加到字典中。然后,将新创建的字典作为值与前一个元素作为键组成的键值对添加到字典中。重复这个过程,直到添加完所有的元素。最后,返回最终的字典。

下面是实现这个功能的代码:

def list_to_nested_dict(lst):
    nested_dict = {}
    for item in reversed(lst):
      nested_dict = {item: nested_dict}
    return nested_dict

q20_list = ['John', 'Danise', 'David', 'Kelly']
output20 = list_to_nested_dict(q20_list)
print(output20)


这段代码将输出:

{'John': {'Danise': {'David': {'Kelly': {}}}}}


希望能帮到你!如果你有任何疑问,请随时问我。

歌者文明清理员 发表于 2023-8-13 22:50:37

q20_list = ['John', 'Danise', 'David', 'Kelly']
output20 = {}
pointer = output20
for k in q20_list:
    pointer = {}
print('The expected output of output20 is', output20)

ba21 发表于 2023-8-13 23:21:13

q20_list = ['John', 'Danise', 'David', 'Kelly']

output20 = {}
for i in range(0, len(q20_list)):
    output20 = {q20_list.pop():output20}



不知道还有没有更好的办法。
页: [1]
查看完整版本: 将list一层转变为多层嵌套