Python Glossary English

все Python 3difflibпонятие

difflib.Match

сравнение последовательностей

Именованный кортеж Match(a, b, size): совпадающий кусок a[a:a+size] == b[b:b+size] двух последовательностей.

Синтаксис

Match(a, b, size)

Его возвращают find_longest_match() и get_matching_blocks() у SequenceMatcher. Ловушка: последний элемент get_matching_blocks() — всегда пустой страж Match(len(a), len(b), 0), и цикл, считающий совпадения, должен его пропускать. Из нескольких одинаково длинных совпадений find_longest_match() берёт самое раннее в a.

Примеры

from difflib import SequenceMatcher
sm = SequenceMatcher(None, 'abxcd', 'abcd')
print(sm.get_matching_blocks())  # → [Match(a=0, b=0, size=2), Match(a=3, b=2, size=2), Match(a=5, b=4, size=0)]
m = sm.find_longest_match(0, 5, 0, 4)
print(m.a, m.size, 'abxcd'[m.a:m.a + m.size])  # → 0 2 ab

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности