Python | Finden Sie alle engen Übereinstimmungen der Eingabezeichenfolge aus einer Liste
Wir erhalten eine Liste von Musterzeichenfolgen und eine einzelne Eingabezeichenfolge. Wir müssen alle möglichen engen Übereinstimmungen der Eingabezeichenfolge in der Liste der Musterzeichenfolgen finden.
Beispiele:
Eingabe: Muster = ['Affe', 'Apfel', 'Pfirsich', 'Welpe'], input = 'appel' Ausgabe: ['Apfel', 'Affe']
Wir können dieses Problem in Python schnell lösen, indem wir die integrierte Funktion difflib.get_close_matches() verwenden .
Wie funktioniert die Funktion difflib.get_close_matches() in Python?
difflib.get_close_matches (Wort, Möglichkeiten, n, Cutoff) akzeptiert vier Parameter, bei denen n, Cutoff optional sind. Wort ist eine Sequenz, für die enge Übereinstimmungen gewünscht werden, Möglichkeiten ist eine Liste von Sequenzen, mit denen Wort abgeglichen werden soll. Das optionale Argument n (Standard 3) ist die maximale Anzahl der zurückzugebenden engen Übereinstimmungen. N muss größer als 0 sein. Das optionale Argument cutoff (Standard 0,6) ist ein Gleitkommawert im Bereich [0, 1]. Möglichkeiten, die nicht mindestens so ähnlich wie ein Wort sind, werden ignoriert.
Die besten (nicht mehr als n) Übereinstimmungen unter den Möglichkeiten werden in einer Liste zurückgegeben, sortiert nach Ähnlichkeitsbewertung, die ähnlichsten zuerst.
from
difflib
import
get_close_matches
def
closeMatches(patterns, word):
(get_close_matches(word, patterns))
if
__name__
=
=
"__main__"
:
word
=
'appel'
patterns
=
[
'ape'
,
'apple'
,
'peach'
,
'puppy'
]
closeMatches(patterns, word)
Referenzen: https://docs.python.org/2/library/difflib.html
Ausgabe:
['Apfel', 'Affe']