[Python] Confronto due stringhe "dettagliato"

Daniele Varrazzo piro a develer.com
Ven 11 Gen 2008 09:31:40 CET


Cristian Re ha scritto:
> Ciao a tutti,
> 
> volevo sapere se esiste qualche comando python per confrontare due 
> stringhe e che torni ad esempio quanti caratteri uguali ci sono nella 
> medesima posizione nelle due stringhe.
> 
> Ad esempio se str1='ciao' e str2='cibo' un comando che torni 3
> 
> So che sarebbe fattibile confrontando ogni singolo carattere ma mi 
> chiedevo se tra le utility di python già non ci fosse qualcosa che 
> gestisce questo.

C'è la difflib, che serve a comparare due sequenze generiche di oggetti:

In [1]: import difflib

In [2]: difflib.SequenceMatcher(None, "ciao", "cibo").get_opcodes()
Out[2]: [('equal', 0, 2, 0, 2), ('replace', 2, 3, 2, 3), ('equal', 3, 4, 3, 4)]

"SequenceMatcher(f, a, b).get_opcodes()" restituisce una lista di quintuplette 
(tag, i1, i2, j1, j2): ognuna dice in che relazione sono i caratteri a[i1:j1] 
con i caratteri b[i2:j2]. Tag può essere 'replace', 'delete', 'insert', 
'equal'. f serve ad avere il controllo su quale elementi ignorare.

Leggi http://docs.python.org/lib/module-difflib.html per i dettagli.

Ciao!

-- 
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com


More information about the Python mailing list