Python 从文本文件创建深度嵌套词典

Python 从文本文件创建深度嵌套词典,python,dictionary,Python,Dictionary,我目前正在努力解决一个问题。我有一个文件,每行包含一个5个字母的单词。例如,让我们说单词是 你好 海拉 苍白 堆 我试图创建一个嵌套字典,每个键对应于单词中的字母。例如,有了这些单词,输出将是 {'H':{'e':{'l':{'l':{'o':'Hello','a':'Hella'}}}}, 'P':{'a':{'l':{'e': {'s':'Pales'}}}, 'i':{'l':{'e':{'s':'Piles}}}}} 我尝试了一些几乎可以工作的代码,但没有产生正确的结果 T={}

我目前正在努力解决一个问题。我有一个文件,每行包含一个5个字母的单词。例如,让我们说单词是 你好 海拉 苍白 堆

我试图创建一个嵌套字典,每个键对应于单词中的字母。例如,有了这些单词,输出将是

{'H':{'e':{'l':{'l':{'o':'Hello','a':'Hella'}}}}, 'P':{'a':{'l':{'e':

{'s':'Pales'}}}, 'i':{'l':{'e':{'s':'Piles}}}}}
我尝试了一些几乎可以工作的代码,但没有产生正确的结果

T={}

for w in wordsFile:
        T[list(w)[0]]={list(w)[1]:{list(w)[2]:{list(w)[3]:{list(w)[4]:w}}}}
return(T)
有人知道更好的方法吗。我只是不太确定如何着手解决这个问题


提前谢谢

以下代码应完成其工作:

def add_to_dict(dictionary, word):
    current_dict = dictionary
    for i, letter in enumerate(word):
        if i == len(word) - 1:
            current_dict[letter] = word
        else:
            if not letter in current_dict:
                current_dict[letter] = {}
            current_dict = current_dict[letter]

dictionary = {}

add_to_dict(dictionary, "Hello")
add_to_dict(dictionary, "Hella")
或者您可以使用
defaultdict

from collections import defaultdict

def nested_dict():
    return defaultdict(nested_dict)

def add_to_dict(dictionary, word):
    current_dict = dictionary
    for i, letter in enumerate(word):
        if i == len(word) - 1:
            current_dict[letter] = word
        else:
            current_dict = current_dict[letter]

def to_dict(dictionary):
    dictionary = dict(dictionary)
    for key, value in dictionary.items():
        if isinstance(value, defaultdict):
            dictionary[key] = to_dict(value)

    return dictionary

dictionary = defaultdict(nested_dict)

add_to_dict(dictionary, "Hello")
add_to_dict(dictionary, "Hella")

dictionary = to_dict(dictionary)

当我运行这段代码时,输出不是一个简单的字典。我不太清楚如何解释输出。。。字典在那里,但每个键之间都是defaultdict(是的。这些是
defaultdict
的实例。它的类型不同,但其行为类似于dict。我已经更新了答案,现在返回值只包含纯dict。