logo

Controleer of String een substring bevat in Python

In dit artikel wordt beschreven hoe u kunt controleren of a Python string bevat een andere string of een substring in Python. Gegeven twee strings, controleer dan of er een substring in de gegeven string staat.

  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.>

Python-subtekenreeks in tekenreeks

Het controleren van een substring is een van de meest gebruikte taken in Python. Python gebruikt veel methoden om een ​​string te controleren die een substring bevat, zoals find(), index(), count(), enz. De meest efficiënte en snelle methode is het gebruik van een in operator die wordt gebruikt als vergelijkingsoperator. Hier bespreken we verschillende benaderingen:



  • Het gebruik van de If-Else
  • In-operator gebruiken
  • Controleren met behulp van split()-methode
  • Gebruik makend van find() methode
  • Gebruik makend van count() methode
  • Gebruik makend van index() methode
  • Lijstbegrip gebruiken
  • Lambda-functie gebruiken
  • Het gebruik van __bevat__ magische klasse.
  • Met behulp van de snijfunctie
  • Gebruik makend van normale uitdrukkingen
  • met behulp van de operator include() methode

Rekening Python-subtekenreeks in tekenreeks met behulp van de If-Else

In Python kun je controleren of de python-substring in de string aanwezig is met behulp van een als-anders stelling. Met de if-else-instructie kunt u verschillende codeblokken voorwaardelijk uitvoeren op basis van de vraag of de voorwaarde waar of onwaar is.

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'>)>

>

>

Uitvoer

Yes! it is present in the string>

Tijdcomplexiteit: Op)
Hulpruimte: O(1)

Python-substring in String controleren met behulp van In Operator

In Python kun je eenvoudig controleren of er een substring aanwezig is in een bepaalde string met behulp van dein>exploitant. Dein>operator wordt gebruikt om te testen of een bepaalde waarde (substring) binnen een reeks bestaat.

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!'>)>

>

>

Uitvoer

Substring found! Substring not found!>

Tijdcomplexiteit: Op)
Hulpruimte: O(1)

Python-substring in String controleren met behulp van de Split()-methode

Controleren of Python-substring in string aanwezig is of niet wordt gebruikt splitsen(). Splits eerst de gegeven string in woorden en sla ze op in een variabele s. Controleer vervolgens met behulp van de if-voorwaarde of er een substring aanwezig is in de gegeven string of niet.

Python3




Java-arrays

# input strings str1 and substr> string>=> 'geeks for geeks'> # or string=input() ->input van de gebruiker nemen> 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'>)>

>

>

Uitvoer

Yes>

Tijdcomplexiteit: O(n + m)
Hulpruimte: Op)

Controleer Python Substring in String met behulp van de Find()-methode

We kunnen elk woord iteratief controleren, maar Python biedt ons een ingebouwde functie vinden() die controleert of er een substring in de string aanwezig is, wat op één regel gebeurt. De functie find() retourneert -1 als deze niet wordt gevonden, anders retourneert deze de eerste keer dat deze voorkomt. Met deze functie kan dit probleem dus worden opgelost.

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)>

>

>

Uitvoer

Yes>

Tijdcomplexiteit: OP)
Hulpruimte: O(1)

Controleer Python Substring in String met behulp van de Count()-methode

Je kunt ook het aantal keren tellen dat een specifieke substring in een string voorkomt, en dan kun je Python gebruiken graaf() methode. Als de subtekenreeks niet wordt gevonden, wordt ja afgedrukt, anders wordt nee afgedrukt.

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)>

>

>

Uitvoer

No>

Tijdcomplexiteit: OP)
Hulpruimte: O(1)

Controleer Python Substring in string met behulp van de Index()-methode

De Index()-methode retourneert de startindex van de subtekenreeks die als parameter is doorgegeven. Hier subtekenreeks is aanwezig op index 16.

Python3




any_string>=> 'Geeks for Geeks substring '> start>=> 0> end>=> 1000> print>(any_string.index(>'substring'>, start, end))>

>

>

Uitvoer

16>

Tijdcomplexiteit: OP)
Hulpruimte: O(1)

Controleer Python-substring in String u zing Lijstbegrip

Om de Python-substring in string te controleren met behulp van lijst begrip . Het gebruik van lijstbegrip biedt een beknopte manier om te controleren op een subtekenreeks in een tekenreeks en om te bepalen of deze in een van de woorden voorkomt.

Python3




s>=>'geeks for geeks'> s2>=>'geeks'> print>([>'yes'> if> s2>in> s>else> 'no'>])>

>

>

Uitvoer

['Yes']>

Tijdcomplexiteit: OP)
Hulpruimte: O(1)

Controleer Python-substring in String met behulp van de Lambda-functie

Om de Python-substring in string te controleren met behulp van lambda-functie . Het gebruik van een lambda-functie biedt een beknopte manier om te controleren op een subtekenreeks in een tekenreeks en te bepalen of deze in een van de woorden voorkomt.

Python3




s>=>'geeks for geeks'> s2>=>'geeks'> x>=>list>(>filter>(>lambda> x: (s2>in> s),s.split()))> print>([>'yes'> if> x>else> 'no'>])>

>

>

Uitvoer

['Yes']>

Tijdcomplexiteit: O(n + m)
Hulpruimte: O(m)

Controleer Python Substring in String met behulp van de magische klasse __contains__.

Om de python-substring in de string te controleren, gebruiken we __contains__(). Deze methode wordt gebruikt om te controleren of de string aanwezig is in de andere string of niet.

Python3




a>=> [>'Geeks-13'>,>'for-56'>,>'Geeks-78'>,>'xyz-46'>]> for> i>in> a:> >if> i.__contains__(>'Geeks'>):> >print>(f>'Yes! {i} is containing.'>)>

callback-hel in javascript

>

>

Uitvoer

Yes! Geeks-13 is containing. Yes! Geeks-78 is containing.>

Tijdcomplexiteit: OP)
Hulpruimte: O(1)

Controleer Python-substring in String met behulp van Slicen

Controleer de python-substring in de string met behulp van slicen. Deze implementatie gebruikt een lus om elke mogelijke startindex van de subtekenreeks in de tekenreeks te doorlopen, en gebruikt vervolgens snijden om de huidige subtekenreeks te vergelijken met het subtekenreeksargument. Als de huidige subtekenreeks overeenkomt met het subtekenreeksargument, retourneert de functie True en retourneert anders 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))>

>

>

Uitvoer

True>

Tijdcomplexiteit: O(n*m)
waarbij n de lengte is van het stringargument en m de lengte van het substringargument. Dit komt omdat de functie een lus gebruikt om elke mogelijke startindex van de subtekenreeks in de tekenreeks te doorlopen en vervolgens segmentering gebruikt om de huidige subtekenreeks te vergelijken met het subtekenreeksargument. In het ergste geval zal de lus n-m+1 keer herhalen, en elke slice-operatie kost O(m) tijd, wat resulteert in een totale tijdscomplexiteit van O((n-m+1)m) = O(nm) .
Hulpruimte: O(1)

Controleer Python Substring in String met behulp van reguliere expressie

In Python kun je controleren of de python-substring in de string aanwezig is met behulp van normale uitdrukkingen . Reguliere expressies bieden krachtige mogelijkheden voor het matchen van patronen, waardoor u complexe zoekpatronen kunt definiëren voor het matchen van subtekenreeksen. Hier ziet u hoe u reguliere expressies kunt gebruiken om te controleren op een subtekenreeks in een tekenreeks.

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'>)>

>

>

Uitvoer

Yes! it is present in the string>

Tijdcomplexiteit: O(n), waarbij n de lengte van de invoerreeks is.
Ruimtecomplexiteit: O(1), omdat we geen extra ruimte gebruiken

Controleer Python-substring in String met behulp van de operator.contains()-methode

Deze aanpak werd gebruiktoperator.bevat()methode om te controleren of de substring aanwezig is in string. Als de voorwaarde True is, print ja, anders print nee

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'>)>

>

>

Uitvoer

Yes>

Tijdcomplexiteit: OP)
Hulpruimte: O(1)