Python: Finde den nächsten String (aus einer Liste) zu einem anderen String
Sagen wir, ich habe einestring
"Hello"
und eine Liste
<code>words = ['hello', 'Hallo', 'hi', 'house', 'key', 'screen', 'hallo','question', 'Hallo', 'format'] </code>
Wie finde ich das?n words
das sind die nächsten zu"Hello"
und in der Liste vorhandenwords
?
In diesem Fall hätten wir['hello', 'hallo', 'Hallo', 'hi', 'format'...]
Die Strategie besteht also darin, die Listenwörter vom nächstgelegenen bis zum am weitesten entfernten Wort zu sortieren.
Ich habe über so etwas nachgedacht
<code>word = 'Hello' for i, item in enumerate(words): if lower(item) > lower(word): ... </code>
aber in großen Listen ist es sehr langsam.
AKTUALISIEREN difflib
funktioniert aber es ist auch sehr langsam. (words list
enthält mehr als 630000 Wörter (sortiert und eins pro Zeile). Das Durchsuchen der Liste dauert also 5 bis 7 Sekunden für jede Suche nach dem nächstgelegenen Wort!