A partir de los documentos:
La clase SequenceMatcher tiene este constructor:
class difflib.SequenceMatcher(isjunk=None, a='', b='', autojunk=True)
El problema en su código es que al hacerlo
seq=difflib.SequenceMatcher(a,b)
está de paso a
por la relación calidad isjunk
b
y por la relación calidad a
, dejando el valor por defecto para ''
b
. Esto da como resultado una proporción de 0.0
.
Una forma de superar esto (ya mencionado por Lennart) es pasar explícitamente None
como primer parámetro adicional para que todos los argumentos de la palabra clave tengan asignados los valores correctos.
Sin embargo, acabo de encontrar, y quería mencionar otra solución, que no toca el argumento isjunk
pero utiliza el método set_seqs()
para especificar las diferentes secuencias.
>>> import difflib
>>> a = 'abcd'
>>> b = 'ab123'
>>> seq = difflib.SequenceMatcher()
>>> seq.set_seqs(a.lower(), b.lower())
>>> d = seq.ratio()*100
>>> print d
44.44444444444444
https://docs.python.org/3/library/difflib.html#sequencematcher-objects –