我如何遍历嵌套字典(python)?

how do i traverse nested dictionaries (python)?

我是 python 的新手,所以如果我有什么不明白的地方请原谅我!!

我有 125 行代码,但有一个部分有问题。按照目前的设置,有一个拼写错误的单词。它链接到字典中拼写相似的单词,并且这些单词有一个基于它们相似程度的分数。

possible_replacements("sineaster", {"sineaster":{"easter":0.75, "sinister":0.60}})

possible_replacements是函数名,"sineaster"是拼错的词,"easter" & "sinister"是推荐的替代词。我想访问字典单词(.75 和 .6)的相关数字,但我似乎无法访问它们,因为它们嵌套在另一本字典中。

有什么建议吗?

一旦您知道要查询哪个词(此处 'sineaster'),您就可以得到一个简单的 dictionary,例如,您可以在 for 循环中遍历:

outer_dict = {"sineaster":{"easter":0.75, "sinister":0.60}}
inner_dict = outer_dict["sineaster"]
for key, value in inner_dict.items():
    print('{}: {}'.format(key, value))

我假设您的替换词典大于单个条目。如果是这样,请考虑一种您可以实施的方法 possible_replacements:

def possible_replacements(misspelled, replacement_dict):
    suggestions = replacement_dict[misspelled]
    for (repl, acc) in suggestions.items():
        print("[%.2f] %s -> %s" % (acc, misspelled, repl))

# This is the replacement dictionary, with an extra entry just to illustrate
replacement_dict = {
    "sineaster":{"easter":0.75, "sinister":0.60},
    "adn": {"and": 0.99, "end": 0.01}
}

# Call function, asking for replacements of "sineaster"
possible_replacements("sineaster", replacement_dict)

输出:

[0.75] sineaster -> easter
[0.60] sineaster -> sinister

在这种情况下,它只是打印出可能的替换列表,以及相应的概率(我假设)。

当你用 "sineaster" 调用它时,在函数内部,

suggestions = {"easter":0.75, "sinister":0.60}

suggestions.items() = [('easter', 0.75), ('sinister', 0.6)]

并且在 for 循环的第一次迭代中:

repl = "easter"
acc  = 0.75

在第二次迭代中:

repl = "sinister"
acc  = 0.60

您可以在函数内部使用任何合适的逻辑,我只是​​选择遍历 "suggestions" 并显示它们。