Vérifiez si la chaîne contient une sous-chaîne en Python
Cet article explique comment vérifier si un Python string contient une autre chaîne ou une sous-chaîne en Python. Étant donné deux chaînes, vérifiez si une sous-chaîne se trouve dans la chaîne donnée.
Input: Substring = 'geeks' String='geeks for geeks' Output: yes Input: Substring = 'geek' String='geeks for geeks' Output: yes Explanation: In this, we are checking if the substring is present in a given string or not.
Sous-chaîne Python dans une chaîne
La vérification d'une sous-chaîne est l'une des tâches les plus utilisées en Python. Python utilise de nombreuses méthodes pour vérifier une chaîne contenant une sous-chaîne comme find(), index(), count(), etc. La méthode la plus efficace et la plus rapide consiste à utiliser un dans opérateur qui est utilisé comme opérateur de comparaison. Nous aborderons ici différentes approches :
- Utiliser le If-Else
- Utilisation dans l'opérateur
- Vérification à l'aide Méthode split()
- En utilisant méthode find()
- En utilisant méthode count()
- En utilisant Méthode index()
- Utiliser la compréhension de liste
- Utilisation de la fonction lambda
- Utilisation de la classe magique __contains__.
- Utilisation de la fonction de découpage
- En utilisant expressions régulières
- en utilisant la méthode opérateur contient()
Vérifier Sous-chaîne Python dans une chaîne en utilisant le If-Else
En Python, vous pouvez vérifier que la sous-chaîne python de la chaîne est présente à l'aide d'un sinon déclaration. L'instruction if-else vous permet d'exécuter conditionnellement différents blocs de code selon que la condition est vraie ou fausse.
Python3
# Take input from users> MyString1> => 'A geek in need is a geek indeed'> > if> 'need'> in> MyString1:> > print> (> 'Yes! it is present in the string'> )> else> :> > print> (> 'No! it is not present'> )> |
Sortir
Yes! it is present in the string
Complexité temporelle : Sur)
Espace Auxiliaire : O(1)
Vérification de la sous-chaîne Python dans la chaîne à l'aide Dans l'opérateur
En Python, vous pouvez facilement vérifier si une sous-chaîne est présente dans une chaîne donnée en utilisant le in> opérateur. Le in> L’opérateur est utilisé pour tester si une valeur particulière (sous-chaîne) existe dans une séquence.
Python3
text> => 'Geeks welcome to the Geek Kingdom!'> > if> 'Geek'> in> text:> > print> (> 'Substring found!'> )> else> :> > print> (> 'Substring not found!'> )> > if> 'For'> in> text:> > print> (> 'Substring found!'> )> else> :> > print> (> 'Substring not found!'> )> |
Sortir
Substring found! Substring not found!
Complexité temporelle : Sur)
Espace Auxiliaire : O(1)
Vérification de la sous-chaîne Python dans la chaîne à l'aide de la méthode Split()
La vérification de la sous-chaîne python dans la chaîne est présente ou n'est pas utilisée diviser(). Divisez d’abord la chaîne donnée en mots et stockez-les dans une variable s, puis en utilisant la condition if, vérifiez si une sous-chaîne est présente ou non dans la chaîne donnée.
Python3
# input strings str1 and substr> string> => 'geeks for geeks'> # or string=input() ->prendre l'entrée de l'utilisateur> substring> => 'geeks'> # or substring=input()> > # splitting words in a given string> s> => string.split()> > # checking condition> # if substring is present in the given string then it gives output as yes> if> substring> in> s:> > print> (> 'yes'> )> else> :> > print> (> 'no'> )> |
Sortir
Yes
Complexité temporelle : O(n+m)
Espace Auxiliaire : Sur)
Vérifiez la sous-chaîne Python dans la chaîne à l'aide de la méthode Find()
Nous pouvons vérifier chaque mot de manière itérative, mais Python nous fournit une fonction intégrée trouver() qui vérifie si une sous-chaîne est présente dans la chaîne, ce qui se fait sur une seule ligne. La fonction find() renvoie -1 si elle n'est pas trouvée, sinon elle renvoie la première occurrence, donc en utilisant cette fonction, ce problème peut être résolu.
Python3
def> check(string, sub_str):> > if> (string.find(sub_str)> => => -> 1> ):> > print> (> 'NO'> )> > else> :> > print> (> 'YES'> )> > > # driver code> string> => 'geeks for geeks'> sub_str> => 'geek'> check(string, sub_str)> |
Sortir
Yes
Complexité temporelle : SUR)
Espace Auxiliaire : O(1)
Vérifiez la sous-chaîne Python dans la chaîne à l'aide de la méthode Count()
Vous pouvez également compter le nombre d'occurrences d'une sous-chaîne spécifique dans une chaîne, puis vous pouvez utiliser le Python compter() méthode. Si la sous-chaîne n'est pas trouvée, alors oui sera imprimé, sinon non sera imprimé.
Python3
def> check(s2, s1):> > if> (s2.count(s1)>> 0> ):> > print> (> 'YES'> )> > else> :> > print> (> 'NO'> )> > > s2> => 'A geek in need is a geek indeed'> s1> => 'geeks'> check(s2, s1)> |
Sortir
No
Complexité temporelle : SUR)
Espace Auxiliaire : O(1)
Vérifiez la sous-chaîne Python dans la chaîne à l'aide de la méthode Index()
Le Méthode Index() renvoie l'index de départ de la sous-chaîne passée en paramètre. Ici sous-chaîne est présent à l’index 16.
Python3
any_string> => 'Geeks for Geeks substring '> start> => 0> end> => 1000> print> (any_string.index(> 'substring'> , start, end))> |
Sortir
16
Complexité temporelle : SUR)
Espace Auxiliaire : O(1)
Vérifiez la sous-chaîne Python dans la chaîne u chanter Compréhension de la liste
Pour vérifier la sous-chaîne Python dans la chaîne en utilisant compréhension de liste . L'utilisation de la compréhension de liste fournit un moyen concis de rechercher une sous-chaîne dans une chaîne et de déterminer si elle existe dans l'un des mots.
Python3
s> => 'geeks for geeks'> s2> => 'geeks'> print> ([> 'yes'> if> s2> in> s> else> 'no'> ])> |
Sortir
['Yes']
Complexité temporelle : SUR)
Espace Auxiliaire : O(1)
Vérifiez la sous-chaîne Python dans la chaîne en utilisant la fonction Lambda
Pour vérifier la sous-chaîne Python dans la chaîne en utilisant fonction lambda . L'utilisation d'une fonction lambda fournit un moyen concis de rechercher une sous-chaîne dans une chaîne et de déterminer si elle existe dans l'un des mots.
Python3
s> => 'geeks for geeks'> s2> => 'geeks'> x> => list> (> filter> (> lambda> x: (s2> in> s),s.split()))> print> ([> 'yes'> if> x> else> 'no'> ])> |
Sortir
['Yes']
Complexité temporelle : O(n+m)
Espace Auxiliaire : O(m)
Vérifiez la sous-chaîne Python dans String à l'aide de la classe magique __contains__.
Pour vérifier la sous-chaîne python dans la chaîne, nous utilisons __contains__(). Cette méthode est utilisée pour vérifier si la chaîne est présente ou non dans l’autre chaîne.
Python3
a> => [> 'Geeks-13'> ,> 'for-56'> ,> 'Geeks-78'> ,> 'xyz-46'> ]> for> i> in> a:> > if> i.__contains__(> 'Geeks'> ):> > print> (f> 'Yes! {i} is containing.'> )> |
Sortir
Yes! Geeks-13 is containing. Yes! Geeks-78 is containing.
Complexité temporelle : SUR)
Espace Auxiliaire : O(1)
Vérifiez la sous-chaîne Python dans la chaîne en utilisant le découpage
Vérifiez la sous-chaîne python dans la chaîne en utilisant le découpage. Cette implémentation utilise une boucle pour parcourir chaque index de départ possible de la sous-chaîne dans la chaîne, puis utilise trancher pour comparer la sous-chaîne actuelle à l'argument de la sous-chaîne. Si la sous-chaîne actuelle correspond à l'argument de sous-chaîne, alors la fonction renvoie True, sinon renvoie False.
Python3
def> is_substring(string, substring):> > for> i> in> range> (> len> (string)> -> len> (substring)> +> 1> ):> > if> string[i:i> +> len> (substring)]> => => substring:> > return> True> > return> False> string> => 'A geeks in need is a geek indeed'> substring> => 'geeks'> print> (is_substring(string,substring))> |
Sortir
True
Complexité temporelle : O(n*m)
où n est la longueur de l'argument de chaîne et m est la longueur de l'argument de sous-chaîne. En effet, la fonction utilise une boucle pour parcourir tous les index de départ possibles de la sous-chaîne dans la chaîne, puis utilise le découpage pour comparer la sous-chaîne actuelle à l'argument de la sous-chaîne. Dans le pire des cas, la boucle itérera n-m+1 fois, et chaque opération de tranche prend un temps O(m), ce qui donne une complexité temporelle totale de O((n-m+1)m) = O(nm) .
Espace Auxiliaire : O(1)
Vérifiez la sous-chaîne Python dans la chaîne à l'aide d'une expression régulière
En Python, vous pouvez vérifier que la sous-chaîne python de la chaîne est présente en utilisant expressions régulières . Les expressions régulières offrent de puissantes capacités de correspondance de modèles, vous permettant de définir des modèles de recherche complexes pour la correspondance de sous-chaînes. Voici comment utiliser des expressions régulières pour rechercher une sous-chaîne dans une chaîne.
Python3
import> re> > MyString1> => 'A geek in need is a geek indeed'> > if> re.search(> 'need'> , MyString1):> > print> (> 'Yes! it is present in the string'> )> else> :> > print> (> 'No! it is not present'> )> |
Sortir
Yes! it is present in the string
Complexité temporelle : O(n), où n est la longueur de la chaîne d'entrée.
Complexité spatiale : O(1), car nous n'utilisons aucun espace supplémentaire
Vérifiez la sous-chaîne Python dans la chaîne en utilisant la méthode Operator.contains()
Cette approche utilisée opérateur.contient() méthode pour vérifier si la sous-chaîne est présente dans la chaîne Si la condition est True, imprimer oui sinon imprimer non
Python3
#Python program to check if a substring is present in a given string> import> operator as op> s> => 'geeks for geeks'> s2> => 'geeks'> if> (op.contains(s,s2)):> > print> (> 'yes'> )> else> :> > print> (> 'no'> )> |
Sortir
Yes
Complexité temporelle : SUR)
Espace Auxiliaire : O(1)