gpt4 book ai didi

python - 从文本文件创建深度嵌套的字典

转载 作者:太空宇宙 更新时间:2023-11-03 14:26:55 25 4
gpt4 key购买 nike

我目前正在努力解决一个问题。我有一个文件,每行包含一个 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)

关于python - 从文本文件创建深度嵌套的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47568470/

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