[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