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

时间:2015-03-30 06:42:45

标签: python dictionary nested

我对python非常新,所以如果我不明白的话,请原谅我!!

我有125行代码,但我有一个问题部分。因为它目前已设置,所以拼写错误的单词。它链接到字典中拼写相似的单词,单词的分数基于它们的相似程度。

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

possible_replacements是函数的名称,“sineaster”是拼写错误的单词,“Easter”& “险恶”是推荐的替代品。我想访问字典单词(.75和.6)的相关数字,但我似乎无法访问它们,因为它们嵌套在另一个字典中。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

一旦你知道要查询哪个单词(这里是'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))

答案 1 :(得分:0)

我假设您的替换字典大于单个条目。如果是这样,请考虑一种可能实现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

你可以在函数中使用任何合适的逻辑,我只是​​选择循环使用"建议"并显示它们。