Trouver une chaîne de caractères dans une liste en Python

Manav Narula 30 janvier 2023
  1. Utilisez la boucle for pour trouver les éléments d’une liste qui contiennent une sous-chaîne spécifique en Python
  2. Utilisez la fonction filter() pour trouver les éléments d’une liste Python qui contiennent une sous-chaîne spécifique
  3. Utiliser les expressions régulières pour trouver les éléments d’une liste Python qui contiennent une sous-chaîne spécifique
Trouver une chaîne de caractères dans une liste en Python

Ce tutoriel présente la manière de trouver les éléments d’une liste Python qui contiennent une sous-chaîne spécifique.

Nous allons travailler avec la liste suivante et extraire les chaînes qui contiennent un ack.

my_list = ["Jack", "Mack", "Jay", "Mark"]

Utilisez la boucle for pour trouver les éléments d’une liste qui contiennent une sous-chaîne spécifique en Python

Dans cette méthode, nous parcourons la liste et vérifions si la sous-chaîne est présente dans un élément particulier ou non. Si la sous-chaîne est présente dans l’élément, alors nous la stockons dans la chaîne. Le code suivant montre comment :

str_match = [s for s in my_list if "ack" in s]
print(str_match)

Production :

['Jack', 'Mack']

Le mot-clé in vérifie si la chaîne donnée, "ack" dans cet exemple, est présente dans la chaîne ou non. Il peut également être remplacé par la méthode __contains__, qui est une méthode magique de la classe de la chaîne de caractères. Par exemple :

str_match = [s for s in my_list if s.__contains__("ack")]
print(str_match)

Production :

['Jack', 'Mack']

Utilisez la fonction filter() pour trouver les éléments d’une liste Python qui contiennent une sous-chaîne spécifique

La fonction filter() récupère un sous-ensemble de données d’un objet donné à l’aide d’une fonction. Cette méthode utilisera le mot-clé lambda pour définir la condition de filtrage des données. Le mot-clé lambda crée une fonction lambda d’une ligne en Python. Voir l’extrait de code suivant.

str_match = list(filter(lambda x: "ack" in x, my_list))
print(str_match)

Production :

['Jack', 'Mack']

Utiliser les expressions régulières pour trouver les éléments d’une liste Python qui contiennent une sous-chaîne spécifique

Une expression régulière est une séquence de caractères qui peut servir de modèle de correspondance pour rechercher des éléments. Pour utiliser des expressions régulières, nous devons importer le module re. Dans cette méthode, nous utiliserons la boucle for et la méthode re.search(), qui est utilisée pour retourner un élément qui correspond à un modèle spécifique. Le code suivant explique comment :

import re

pattern = re.compile(r"ack")
str_match = [x for x in my_list if re.search("ack", x)]
print(str_match)

Production :

['Jack', 'Mack']
Auteur: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Article connexe - Python List