Comment vérifier si une chaîne de caractères contient une sous-chaîne en Python
-
Opérateur
in
pour vérifier si une chaîne contient une sous-chaîne -
Méthode
str.find()
pour vérifier si une chaîne de caractères contient une sous-chaîne -
str.index()
Méthode - Solution de vérification des sous-chaînes Conclusion
C’est assez souvent que nous devons vérifier si la chaîne donnée contient une sous-chaîne spécifique. Nous allons lister ici quelques méthodes, puis comparer les performances en temps réel pour sélectionner la méthode la plus efficace.
Nous prendrons la chaîne - It is a given string
comme chaîne donnée et given
est la sous-chaîne à vérifier.
Opérateur in
pour vérifier si une chaîne contient une sous-chaîne
in
operator est l’opérateur de vérification des membres. Le membre x in y
est évalué comme étant True
si x
est un membre de y
, ou en d’autres termes, y
contient x
.
Il retourne True
si la chaîne y
contient la sous-chaîne x
.
>>> "given" in "It is a given string"
True
>>> "gaven" in "It is a given string"
False
Performance de l’opérateur in
import timeit
def in_method(given, sub):
return sub in given
print(min(timeit.repeat(lambda: in_method("It is a given string", "given"))))
0.2888628
Méthode str.find()
pour vérifier si une chaîne de caractères contient une sous-chaîne
find
est une méthode intégrée de string
- str.find(sub)
.
Elle retourne l’index le plus bas de str
où la sous-chaîne sub
est trouvée, sinon retourne -1
si sub
n’est pas trouvée.
>>> givenStr = 'It is a given string'
>>> givenStr.find('given')
8
>>> givenStr.find('gaven')
-1
Performance de la méthode str.find()
import timeit
def find_method(given, sub):
return given.find(sub)
print(min(timeit.repeat(lambda: find_method("It is a given string", "given"))))
0.42845349999999993
str.index()
Méthode
str.index(sub)
is a string
built-in method that returns the lowest index in str
where sub
is found. It will raise ValueError
when the substring sub
is not found.
>>> givenStr = 'It is a given string'
>>> givenStr.index('given')
8
>>> givenStr.index('gaven')
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
givenStr.index('gaven')
ValueError: substring not found
str.index()
Performance de la méthode
import timeit
def find_method(given, sub):
return given.find(sub)
print(min(timeit.repeat(lambda: find_method("It is a given string", "given"))))
0.457951
Solution de vérification des sous-chaînes Conclusion
- L’opérateur
in
est celui que vous devez utiliser pour vérifier si une sous-chaîne existe dans la chaîne donnée car il est le plus rapide str.find()
etstr.index()
pourraient aussi être utilisés mais pas l’optimal à cause de la mauvaise performance
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookArticle connexe - Python String
- Supprimer les virgules de la chaîne en Python
- Comment vérifier qu'une chaîne est vide de manière pythonique
- Convertir une chaîne en nom de variable en Python
- Comment supprimer les espaces dans une chaîne de caractères en Python
- Comment extraire des nombres d'une chaîne de caractèresen Python
- Comment convertir une chaîne de caractères en datetime en Python