Maison > Article > développement back-end > Programme Python pour extraire les chaînes correspondant à la grille
La reconnaissance de formes est un concept de programmation important. Cela nous permet de récupérer des données spécifiques qui répondent à des conditions spécifiques ou correspondent à une séquence spécifique. Ce principe est utile dans divers domaines tels que le Langage et le Traitement d'image. La correspondance de chaînes nous aide à extraire des informations significatives à partir de grandes quantités de données.
Dans cet article, nous discuterons du concept similaire d'extraction de correspondance de grillechaînes à partir d'une liste de chaînes donnée. L'objectif de la correspondance de grille est d'extraire des chaînes "similaires" de longueur égale. Discutons de ce problème en détail.
Le concept principal est d'extraire des chaînes similaires qui suivent un modèle spécifique. La chaîne de grille contient des caractères manquants et les chaînes qui correspondent au modèle masqué de la grille doivent être extraites. Comprenons cela à travers un exemple -
Input: lis1 = ["Suresh", "Ramesh", "Ravi", "Raghav"] mesh = "___e_h"
La grille contient les lettres "e" et "h" ainsi que quelques caractères manquants qui forment un motif. Nous devons extraire la chaîne correspondant au motif de grille de la liste.
Output: ['Suresh', 'Ramesh']
Apparemment, les mots « Suresh » et « Ramesh » correspondent au motif de la grille. Maintenant que nous comprenons l'énoncé du problème, discutons de quelques solutions.
Après avoir transmis la liste de chaînes et le motif de grille, nous créerons une liste vide pour stocker les chaînes extraites. Nous utiliserons une boucle "for" pour parcourir chaque chaîne et créer une condition à l'intérieur de la boucle pour vérifier si la longueur de la "String" (mot) actuelle est égale à la longueur de cette chaîne. filet.
Cela nous permet de sélectionner des chaînes pertinentes pour la correspondance de grille. La condition vérifie également si le caractère dans la grille est "souligné" ou correspond au caractère correspondant dans le mot.
En utilisant ces deux conditions, nous extrairons les mots qui correspondent au motif de la grille. Si la chaîne et ses caractères satisfont à la condition, la fonction zip() sera utilisée pour itérer et associer les caractères de "mesh" avec les caractères de "". Cette fonction permet aux deux modèles d'effectuer des comparaisons par paires.
Exemple
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}")Sortie
The original list is: ['Suresh', 'Ramesh', 'Ravi', 'Raghav'] The new list is: ['Suresh', 'Ramesh']
Cette représentation compacte améliore la lisibilité du programme. Nous utiliserons la même logique pour établir des conditions et des valeurs distinctes qui répondent aux critères. Les boucles « for » et « if » seront appliquées aux listes. Comparez et faites correspondre chaque caractère à l'aide de la fonction
zip() .
Exemple
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}")Sortie
The original list is:['Suresh', 'Ramesh', 'Ravi', 'Raghav'] The new list is: ['Suresh', 'Ramesh']
filter() et lambda . La fonction de filtrage filtrera les chaînes sans correspondance et définira une fonction lambda qui vérifie la longueur des deux modèles. La fonction
zip() sera utilisée pour comparer et faire correspondre les caractères. Les critères de filtre seront fournis par la fonction lambda.
Exemple
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}")Sortie
The original list is:['Suresh', 'Ramesh', 'Ravi', 'Raghav'] The new list is: ['Suresh', 'Ramesh']
Conclusion
gridchaînes correspondantes. Au départ, nous nous sommes concentrés sur la compréhension du concept de correspondance de grille, puis nous avons introduit des solutions. Nous avons appliqué de nombreux concepts de programmation, notamment "Itération", "Compréhension de liste", "filter()" et "fonction lambda" b>" pour atteindre nos objectifs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!