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)