Python:从列表中查找与另一个字符串最接近的字符串
假设我有一个string
"Hello"
和一个清单
words = ['hello', 'Hallo', 'hi', 'house', 'key', 'screen', 'hallo','question', 'Hallo', 'format']
如何找到列表中n words
最接近"Hello"
的列表words
?
在这种情况下,我们将有 ['hello', 'hallo', 'Hallo', 'hi', 'format'...]
因此,策略是从最接近的词到最远的词对列表词进行排序。
我想到了这样的事情
word = 'Hello'for i, item in enumerate(words):
if lower(item) > lower(word):
...
但是在大型列表中,它的速度非常慢。
difflib
可以工作,但是它也很慢。(words
list内部有630000个以上的单词(已排序,每行一个)。因此,每次搜索最接近的单词时,检查列表都需要5到7秒!
回答:
使用difflib.get_close_matches
。
>>> words = ['hello', 'Hallo', 'hi', 'house', 'key', 'screen', 'hallo', 'question', 'format']>>> difflib.get_close_matches('Hello', words)
['hello', 'Hallo', 'hallo']
请查看文档,因为该函数默认返回3个或更少的最接近匹配项。
以上是 Python:从列表中查找与另一个字符串最接近的字符串 的全部内容, 来源链接: utcz.com/qa/415983.html