-
get_matching_blocks
()¶ 返回描述非重叠匹配子序列的三元组列表。 每个三元组的形式为
(i, j, n)
,其含义为a[i:i+n] == b[j:j+n]
。 这些三元组按 i 和 j 单调递增排列。最后一个三元组用于占位,其值为
(len(a), len(b), 0)
。 它是唯一n == 0
的三元组。 如果(i, j, n)
和(i', j', n')
是在列表中相邻的三元组,且后者不是列表中的最后一个三元组,则i+n < i'
或j+n < j'
;换句话说,相邻的三元组总是描述非相邻的相等块。>>> s = SequenceMatcher(None, "abxcd", "abcd") >>> s.get_matching_blocks() [Match(a=0, b=0, size=2), Match(a=3, b=2, size=2), Match(a=5, b=4, size=0)]