我如何遍历嵌套字典(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" 并显示它们。
我是 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" 并显示它们。