Mustererkennung ist ein wichtiges Programmierkonzept. Es ermöglicht uns, bestimmte Daten abzurufen, die bestimmte Bedingungen erfüllen oder einer bestimmten Reihenfolge entsprechen. Dieses Prinzip ist in verschiedenen Bereichen wie Sprache und Bildverarbeitung hilfreich. Der String-Abgleich hilft uns, aus großen Datenmengen aussagekräftige Informationen zu extrahieren.
In diesem Artikel besprechen wir das ähnliche Konzept des Extrahierens von Grid-MatchingStrings aus einer gegebenen Liste von Strings. Der Schwerpunkt des Rasterabgleichs liegt auf dem Extrahieren von „ähnlichen“ Zeichenfolgen gleicher Länge. Lassen Sie uns dieses Problem im Detail besprechen.
Das Problem verstehenEingabe- und Ausgabeszenarien
Input: lis1 = ["Suresh", "Ramesh", "Ravi", "Raghav"] mesh = "___e_h"
e“ und „h“ sowie einige fehlende Zeichen, die ein Muster bilden. Wir müssen die zum Rastermuster passende Zeichenfolge aus der Liste extrahieren.
Output: ['Suresh', 'Ramesh']
Suresh“ und „Ramesh“ mit dem Gittermuster überein. Nachdem wir nun die Problemstellung verstanden haben, besprechen wir einige Lösungen.
Iteration mit Zip() verwendenString“ (Wortes) gleich der Länge dieser Zeichenfolge ist. netto.
Dadurch können wir relevante Zeichenfolgen für den Rasterabgleich auswählen. Die Bedingung prüft auch, ob das Zeichen im Raster „unterstrichen“ ist oder mit dem entsprechenden Zeichen im Wort übereinstimmt.
Anhand dieser beiden Bedingungen extrahieren wir Wörter, die dem Rastermuster entsprechen. Wenn sowohl die Zeichenfolge als auch ihre Zeichen die Bedingung erfüllen, wird die Funktionzip() verwendet, um die Zeichen in „mesh“ zu iterieren und mit den Zeichen in „“ zu paaren. Diese Funktion ermöglicht paarweise Vergleiche beider Muster Beispiel
lis1 = ["Suresh", "Ramesh", "Ravi", "Raghav"] mesh = "___e_h" lis2 = [] print(f"The original list is: {lis1}") for words in lis1: if (len(words) == len(mesh)) and all((letter1 == "_") or (letter1 == letter2) for letter1, letter2 in zip(mesh, words)): lis2.append(words) print(f"The new list is: {lis2}")
Ausgabe
The original list is: ['Suresh', 'Ramesh', 'Ravi', 'Raghav'] The new list is: ['Suresh', 'Ramesh']
Diese kompakte Darstellung verbessert die Lesbarkeit des Programms. Wir verwenden dieselbe Logik, um Bedingungen festzulegen und Werte zu trennen, die die Kriterien erfüllen. Auf Listen werden sowohl „for“- als auch „if“-Schleifen angewendet. Vergleichen und ordnen Sie jedes Zeichen mit Hilfe der Funktion
zip()zu. Beispiel
lis1 = ["Suresh", "Ramesh", "Ravi", "Raghav"] mesh = "___e_h" print(f"The original list is:{lis1}") lis2 = [words for words in lis1 if (len(words) == len(mesh)) and all((letter1 == "_") or (letter1 == letter2) for letter1, letter2 in zip(mesh, words))] print(f"The new list is: {lis2}")
Ausgabe
The original list is:['Suresh', 'Ramesh', 'Ravi', 'Raghav'] The new list is: ['Suresh', 'Ramesh']
und lambda eine neue Liste. Die Filterfunktion filtert nicht übereinstimmende Zeichenfolgen heraus und definiert darin eine Lambda-Funktion, die die Länge beider Muster überprüft. Die Funktion
zip()wird zum Vergleichen und Abgleichen von Zeichen verwendet. Die Filterkriterien werden von der Lambda-Funktion bereitgestellt. Beispiel
lis1 = ["Suresh", "Ramesh", "Ravi", "Raghav"] mesh = "___e_h" print(f"The original list is:{lis1}") lis2 = list(filter(lambda words: len(words) == len(mesh) and all((letter1 == "_") or (letter1 == letter2) for letter1, letter2 in zip(mesh, words)), lis1)) print(f"The new list is: {lis2}")
Ausgabe
The original list is:['Suresh', 'Ramesh', 'Ravi', 'Raghav'] The new list is: ['Suresh', 'Ramesh']
Fazit
passenden Zeichenfolgen besprochen. Zunächst konzentrierten wir uns auf das Verständnis des Konzepts der Rasteranpassung und stellten später Lösungen vor. Wir haben viele Programmierkonzepte angewendet, darunter „Iteration“, „Listenverständnis“, „filter()“ und „Lambda-Funktion“ b>“, um unsere Ziele zu erreichen.
Das obige ist der detaillierte Inhalt vonPython-Programm zum Extrahieren von Raster-Matching-Strings. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!