Tengo que escribir una función que toma una cadena como argumento y comparar esta cadena con otras dos cadenas y devolver la cadena más similar y el número de diferencias.comparación de dos cadenas y devolver la más similar
def func("LUMB"):
lst=["JIBM", "NUNE", "NUMB"]
should return:
("NUMB",1)
que he intentado:
def f(word):
lst=["JIBM", "NUNE", "NUMB"]
for i in lst:
d=k(word, lst)
return differences
for n in d:
print min(sum(n))
donde:
def k(word1, word2):
L=[]
for w in range(len(word1)):
if word1[w] != word2[w]:
L.append(1)
else:
L.append(0)
return L
modo que me sale una lista de, por ejemplo, [1,0,0,0] si palabra1 = "NUMB "y word2 =" LUMB "
¿Has visto [Algoritmo de diferencia de texto] (http://stackoverflow.com/questions/145607/text-difference-algorithm) y [Módulos de Good Python para la comparación de cadenas difusas] (http://stackoverflow.com/questions)/682367/good-python-modules-for-fuzzy-string-comparison) – Chris
También hay un número de respuestas disponibles en este enlace http://stackoverflow.com/questions/682367/good-python-modules-for-fuzzy -string-comparison –
En el sitio hay una publicación similar. Obtendrá algunas respuestas más valiosas aquí http://stackoverflow.com/questions/682367/good-python-modules-for-fuzzy-string-comparison –