difflib
是一個專注於比較資料集(尤其是字串)的 Python 模組。為了具體瞭解您可以使用此模組完成的幾件事,讓我們檢查一下它的一些最常見的函式。
SequenceMatcher
SequenceMatcher
是一個比較兩個字串並根據它們的相似性返回資料的函式。透過使用 ratio()
,我們將能夠根據比率/百分比來量化這種相似性。
語法:
SequenceMatcher(None, string1, string2)
下面這個簡單的例子展示了該函式的作用:
from difflib import SequenceMatcher
phrase1 = "Tandrew loves Trees."
phrase2 = "Tandrew loves to mount Trees."
similarity = SequenceMatcher(None, phrase1, phrase2)
print(similarity.ratio())
# Output: 0.8163265306122449
get_close_matches
接下來是 get_close_matches
,該函式返回與作為引數傳入的字串最接近的匹配項。
語法:
get_close_matches(word, possibilities, result_limit, min_similarity)
下面解釋一下這些可能有些混亂的引數:
word
是函式將要檢視的目標單詞。possibilities
是一個陣列,其中包含函式將要查詢的匹配項並找到最接近的匹配項。result_limit
是返回結果數量的限制(可選)。min_similarity
是兩個單詞需要具有的最小相似度才能被函式視為返回值(可選)。
下面是它的一個使用示例:
from difflib import get_close_matches
word = 'Tandrew'
possibilities = ['Andrew', 'Teresa', 'Kairu', 'Janderson', 'Drew']
print(get_close_matches(word, possibilities))
# Output: ['Andrew']
除此之外還有幾個是您可以檢視的屬於 Difflib
的其他一些方法和類:unified_diff
、Differ
和 diff_bytes