Le problème classique qui peut être traité assez facilement par Python et qui a également été traité de nombreuses fois est de trouver si une chaîne est la sous-chaîne d’une autre. Mais parfois, on souhaite étendre cela sur une liste de chaînes de caractères, et donc nécessite alors de traverser tout le conteneur et d’exécuter l’algorithme générique.
Discutons de certaines façons de trouver des chaînes avec une sous-chaîne donnée dans une liste.
Méthode #1 : Utiliser la compréhension de liste
La compréhension de liste est une façon élégante d’effectuer toute tâche particulière car elle augmente la lisibilité à long terme. Cette tâche peut être effectuée en utilisant la méthode naïve et donc peut être réduite à la compréhension de liste aussi bien.
test_list
=
print
(
"The original list is : "
+
str
(test_list))
subs
=
'Geek'
res
=
print
(
"All strings with given substring are : "
+
str
(res))
The original list is : All strings with given substring are :
Méthode #2 : Utilisation de filter()
+ lambda
Cette fonction peut également effectuer cette tâche de recherche des chaînes de caractères avec l’aide de lambda. Elle filtre simplement toutes les chaînes de caractères correspondant à la sous-chaîne particulière et l’ajoute ensuite dans une nouvelle liste.
test_list
=
print
(
"The original list is : "
+
str
(test_list))
subs
=
'Geek'
res
=
list
(
filter
(
lambda
x: subs
in
x, test_list))
print
(
"All strings with given substring are : "
+
str
(res))
The original list is : All strings with given substring are :
Méthode #3 : Utilisation de re + search()
Les expressions régulières peuvent être utilisées pour effectuer de nombreuses tâches en python. Pour effectuer cette tâche particulière également, les expressions régulières peuvent être utiles. Il trouve toutes les sous-chaînes correspondantes en utilisant search()
et renvoie le résultat.
import
re
test_list
=
print
(
"The original list is : "
+
str
(test_list))
subs
=
'Geek'
res
=
print
(
"All strings with given substring are : "
+
str
(res))
The original list is : All strings with given substring are :
Laisser un commentaire