Python: encuentra la cadena más cercana (de una lista) a otra cadena
Digamos que tengo unstring
"Hello"
y una lista
<code>words = ['hello', 'Hallo', 'hi', 'house', 'key', 'screen', 'hallo','question', 'Hallo', 'format'] </code>
¿Cómo puedo encontrar eln words
que son los mas cercanos a"Hello"
y presente en la listawords
?
En este caso, tendríamos['hello', 'hallo', 'Hallo', 'hi', 'format'...]
Así que la estrategia es ordenar las palabras de la lista de la palabra más cercana a la más alejada.
Pensé en algo como esto
<code>word = 'Hello' for i, item in enumerate(words): if lower(item) > lower(word): ... </code>
Pero es muy lento en grandes listas.
ACTUALIZAR difflib
Funciona pero es muy lento también. (words list
tiene 630000+ palabras dentro (ordenadas y una por línea)). ¡Así que revisar la lista toma de 5 a 7 segundos para cada búsqueda de la palabra más cercana!