How to use SequenceMatcher to find similarity between two strings?

git archive также работы с удаленным репозиторием.

git archive --format=tar \
--remote=ssh://remote_server/remote_repository master | tar -xf -

Для экспорта конкретного пути в repo добавляют столько путей, сколько Вы желаете как последний аргумент мерзавцу, например:

git archive --format=tar \
--remote=ssh://remote_server/remote_repository master path1/ path2/ | tar -xv
27
задан Tim 5 June 2014 в 14:30
поделиться

1 ответ

Из документов:

Класс SequenceMatcher имеет этот конструктор:

class difflib.SequenceMatcher(isjunk=None, a='', b='', autojunk=True)

Проблема в Ваш код состоит в том, что, выполняя

seq=difflib.SequenceMatcher(a,b)

, вы передаете a как значение для isjunk и b как значение для a, оставляя значение по умолчанию '' для b. Это приводит к соотношению 0.0.

Один из способов преодолеть это (уже упоминавшийся Леннартом) - это явно передать None в качестве дополнительного первого параметра, чтобы всем ключевым аргументам были присвоены правильные значения.

Однако я только что нашел и хотел упомянуть другое решение, которое не касается аргумента isjunk, но использует метод set_seqs() для определения различных последовательностей.

>>> import difflib
>>> a = 'abcd'
>>> b = 'ab123'
>>> seq = difflib.SequenceMatcher()
>>> seq.set_seqs(a.lower(), b.lower())
>>> d = seq.ratio()*100
>>> print d
44.44444444444444
17
ответ дан 28 November 2019 в 04:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: