问题
I have a list of strings: tree_list = ['Parents', 'Children', 'GrandChildren']
How can i take that list and convert it to a nested dictionary like this?
tree_dict = {
'Parents': {
'Children': {
'GrandChildren' : {}
}
}
}
print tree_dict['Parents']['Children']['GrandChildren']
回答1:
This easiest way is to build the dictionary starting from the inside out:
tree_dict = {}
for key in reversed(tree_list):
tree_dict = {key: tree_dict}
回答2:
50 46 44 bytes
Trying to golf this one:
lambda l:reduce(lambda x,y:{y:x},l[::-1],{})
回答3:
Using a recursive function:
tree_list = ['Parents', 'Children', 'GrandChildren']
def build_tree(tree_list):
if tree_list:
return {tree_list[0]: build_tree(tree_list[1:])}
return {}
build_tree(tree_list)
来源:https://stackoverflow.com/questions/40401886/how-to-create-a-nested-dictionary-from-a-list-in-python