Python 計算增量的輔助函式


Python 的 `difflib` 模組用於計算差異。它用於比較檔案,並可以以多種格式(包括 HTML、上下文和統一差異)生成有關檔案差異的資訊。

在使用之前,我們需要首先匯入 `difflib` 模組:

import difflib

類 (difflib.SequenceMatcher)

此類用於比較任何型別的兩個序列。它具有不同的方法。一些方法:

  • set_seqs(a, b) - 設定將要比較的序列檔案。它計算並快取有關第二個檔案的詳細資訊。因此,對於匹配多個檔案,我們應該重複設定第一個序列。

  • set_seq1(a) - 設定將要比較的第一個序列。

  • set_seq2(2) - 設定將要比較的第二個序列。

  • find_longest_match(alo, ahi, blo, bhi) - 查詢在第一個序列的 alo 到 ahi 範圍內和第二個序列的 blo 到 bhi 範圍內哪個匹配塊最長。

  • get_matching_blocks() - 查詢按降序排列的匹配序列列表。

  • ratio() - 查詢序列相似度的比率,以浮點值表示。

返回序列相似度的度量

要返回序列相似度的度量,請使用 `difflib` 模組的 `ratio()` 方法:

示例

import difflib s = difflib.SequenceMatcher(None, "abcd", "bcde") print("Ratio = ",s.ratio())

輸出

Ratio = 0.75

返回比率的上限

要返回比率的上限,請執行以下程式碼:

示例

import difflib s = difflib.SequenceMatcher(None, "abcd", "bcde") print("Ratio = ",s.ratio()) print("Quick Ratio = ",s.quick_ratio()) print("Real Quick Ratio = ",s.real_quick_ratio())

輸出

Ratio = 0.75
Quick Ratio = 0.75
Real Quick Ratio = 1.0

獲取序列匹配的比率

要獲取序列匹配的比率,以下是程式碼:

示例

import difflib myStr1 = 'Python Programming' myStr2 = 'Python Standard Library' # The SequenceMatcher compares sequences seq_match = difflib.SequenceMatcher(lambda x: x==' ', myStr1, myStr2) print("Ratio of the sequence matching = " + str(round(seq_match.ratio(), 3))) for match_block in seq_match.get_matching_blocks(): print(match_block)

輸出

The ratio of the sequence matching is: 0.488
Match(a=0, b=0, size=7)
Match(a=8, b=13, size=1)
Match(a=11, b=19, size=2)
Match(a=18, b=23, size=0)

更新於:2022年8月11日

193 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.