Dalla documentazione:
La classe SequenceMatcher ha questo costruttore:
class difflib.SequenceMatcher(isjunk=None, a='', b='', autojunk=True)
Il problema nel codice è che facendo
seq=difflib.SequenceMatcher(a,b)
si passa a
come rapporto qualità-isjunk
e b
come rapporto qualità-a
, lasciando il valore di default per ''
b
. Ciò si traduce in un rapporto di 0.0
.
Un modo per superare questo problema (già menzionato da Lennart) è di passare esplicitamente a None
come primo parametro aggiuntivo in modo che tutti gli argomenti delle parole chiave vengano assegnati ai valori corretti.
Tuttavia ho appena trovato, e volevo citare un'altra soluzione, che non tocca l'argomento isjunk
ma utilizza il metodo set_seqs()
per specificare le diverse sequenze.
>>> import difflib
>>> a = 'abcd'
>>> b = 'ab123'
>>> seq = difflib.SequenceMatcher()
>>> seq.set_seqs(a.lower(), b.lower())
>>> d = seq.ratio()*100
>>> print d
44.44444444444444
fonte
2014-06-05 14:48:29
https://docs.python.org/3/library/difflib.html#sequencematcher-objects –