我有一个'collections.defaultdict'(见下面的x),它是一个多值字典。与每个唯一键关联的所有值都存储在一个列表中。
>>>x
defaultdict(<type 'list'>, {'a': ['aa', 'ab', 'ac'], 'b': ['ba', 'bc'], 'c': ['ca', 'cb', 'cc', 'cd']})
我想使用 Python blurwuzzy 包来针对嵌套在多值字典中的所有值搜索目标字符串,并根据 Fuzzywuzzy 的内置编辑距离公式返回前 5 个匹配项。
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
query = 'bc'
choices = x
result = process.extract(query, choices, limit=5)
然后我将运行一个过程,该过程采用最接近的匹配(具有最高模糊率分数的值)并识别最接近的匹配值与哪个键相关联。在这个例子中,最接近的匹配值当然是 'bc' 并且关联的键是 'b'。
我的问题是:我如何对字典嵌套列表中的所有值运行fuzzywuzzy 查询?当我运行上面的fuzzywuzzy 过程时,我得到一个TypeError:预期的字符串或缓冲区。