[Python] Confronto due stringhe "dettagliato"

Daniele Varrazzo piro a develer.com
Ven 11 Gen 2008 19:19:37 CET


ZeD ha scritto:
> Pietro Battiston wrote:
> 
>>> Grazie devo approfondire questa SequenceMatcher, non la conoscevo.
>> Se vuoi evitare una libreria a costo di introdurre dello schifo, è pur
>> sempre una riga :-)
>>
>>>>> (lambda x, y : len([x[i] for i in range(min(len(x),len(y))) if x[i]
>> == y[i]])) (list('ciao'), list('cibo'))
>> 3
> 
> prova con "essere" e "sere" (chiariamo, dipende tutto da quello che l'OP
> deve farci con l'informazione cercata)
> 
> btw questa versione è più compatta (anche se non meno schifosa :D)
> 
> In [38]: f = lambda s1,s2: sum(1 for c1,c2 in zip(s1, s2) if c1 == c2)

Per stare al gioco: puoi anche sommare tra loro i bool:

In [1]: def f(s1, s2):
    ...:     return sum(c1 == c2 for c1, c2 in zip(s1, s2))
    ...:

In [2]: f('ciao', 'cibo')
Out[2]: 3

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


More information about the Python mailing list