Denne artikel vil dække, hvordan man kontrollerer, om en Python streng indeholder en anden streng eller en understreng i Python. Givet to strenge, tjek om en understreng er i den givne streng.
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-understreng i streng
Kontrol af en understreng er en af de mest brugte opgaver i Python. Python bruger mange metoder til at kontrollere en streng, der indeholder en understreng som, find(), index(), count() osv. Den mest effektive og hurtige metode er ved at bruge en i operator, der bruges som sammenligningsoperator. Her vil vi dække forskellige tilgange:
- Brug af If-Else
- Bruger In Operator
- Kontrol vha split() metode
- Ved brug af find() metode
- Ved brug af count() metode
- Ved brug af index() metode
- Brug af listeforståelse
- Bruger lambda funktion
- Brug af __contains__ magic class.
- Brug af udskæringsfunktionen
- Ved brug af regulære udtryk
- bruger operatoren contains() metode
Kontrollere Python-understreng i streng ved hjælp af If-Else
I Python kan du kontrollere, at python-understrengen i strengen er til stede ved hjælp af en hvis ellers udmelding. If-else-sætningen giver dig mulighed for betinget at udføre forskellige kodeblokke baseret på, om betingelsen er sand eller falsk.
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'>)> |
>
java matematik tilfældig
>
Produktion
Yes! it is present in the string>
Tidskompleksitet: På)
Hjælpeplads: O(1)
Kontrollerer Python Substring i String ved hjælp af I Operatør
I Python kan du nemt kontrollere, om en understreng er til stede i en given streng ved hjælp afin>operatør. Detin>operator bruges til at teste, om en bestemt værdi (understreng) findes i en sekvens.
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!'>)> |
>
>
Produktion
Substring found! Substring not found!>
Tidskompleksitet: På)
Hjælpeplads: O(1)
Kontrollerer Python Substring i String ved hjælp af Split() metoden
Kontrollerer, at python-understrengen i strengen er til stede eller ikke bruger dele(). Opdel først den givne streng i ord og gem dem i en variabel s, og brug derefter if-betingelsen til at kontrollere, om en understreng er til stede i den givne streng eller ej.
Python3
# input strings str1 and substr> string>=> 'geeks for geeks'> # or string=input() ->tager input fra brugeren> 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'>)> |
>
>
Produktion
Yes>
Tidskompleksitet: O(n + m)
Hjælpeplads: På)
Tjek Python Substring i String ved hjælp af Find() metoden
Vi kan iterativt tjekke for hvert ord, men Python giver os en indbygget funktion Find() som tjekker om en understreng er til stede i strengen, hvilket gøres på én linje. find()-funktionen returnerer -1, hvis den ikke findes, ellers returnerer den den første forekomst, så ved at bruge denne funktion kan dette problem løses.
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)> |
>
>
Produktion
Yes>
Tidskompleksitet: PÅ)
Hjælpeplads: O(1)
Tjek Python-understrengen i streng ved hjælp af Count()-metoden
Du kan også tælle antallet af forekomster af en specifik understreng i en streng, så kan du bruge Python tælle() metode. Hvis understrengen ikke findes, udskrives ja, ellers udskrives nej.
Python3
hvilket år computeren blev opfundet
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)> |
>
>
Produktion
No>
Tidskompleksitet: PÅ)
Hjælpeplads: O(1)
Tjek Python Substring i streng ved hjælp af Index() metode
Det Index() metode returnerer startindekset for den delstreng, der sendes som en parameter. Her understreng er til stede på indeks 16.
Python3
java program
any_string>=> 'Geeks for Geeks substring '> start>=> 0> end>=> 1000> print>(any_string.index(>'substring'>, start, end))> |
>
>
Produktion
16>
Tidskompleksitet: PÅ)
Hjælpeplads: O(1)
Tjek Python Substring i String u synge Listeforståelse
For at kontrollere Python understreng i streng ved hjælp af listeforståelse . Brug af listeforståelse giver en kortfattet måde at kontrollere for en understreng i en streng og afgøre, om den findes i nogen af ordene.
Python3
s>=>'geeks for geeks'> s2>=>'geeks'> print>([>'yes'> if> s2>in> s>else> 'no'>])> |
>
>
Produktion
['Yes']>
Tidskompleksitet: PÅ)
Hjælpeplads: O(1)
Tjek Python Substring i String ved hjælp af Lambda-funktionen
For at kontrollere Python understreng i streng ved hjælp af lambda funktion . Brug af en lambda-funktion giver en kortfattet måde at kontrollere for en understreng i en streng og afgøre, om den findes i nogen af ordene.
Python3
s>=>'geeks for geeks'> s2>=>'geeks'> x>=>list>(>filter>(>lambda> x: (s2>in> s),s.split()))> print>([>'yes'> if> x>else> 'no'>])> |
>
knn
>
Produktion
['Yes']>
Tidskompleksitet: O(n + m)
Hjælpeplads: O(m)
Tjek Python Substring i String ved hjælp af magicklassen __contains__.
For at kontrollere python-understreng i streng bruger vi __contains__(). Denne metode bruges til at kontrollere, om strengen er til stede i den anden streng eller ej.
Python3
a>=> [>'Geeks-13'>,>'for-56'>,>'Geeks-78'>,>'xyz-46'>]> for> i>in> a:> >if> i.__contains__(>'Geeks'>):> >print>(f>'Yes! {i} is containing.'>)> |
>
>
Produktion
Yes! Geeks-13 is containing. Yes! Geeks-78 is containing.>
Tidskompleksitet: PÅ)
Hjælpeplads: O(1)
Tjek Python Substring i String ved hjælp af udskæring
Tjek python-understreng i streng ved hjælp af udskæring. Denne implementering bruger en løkke til at iterere gennem alle mulige startindekser for understrengen i strengen og bruger derefter udskæring for at sammenligne den aktuelle understreng med understrengsargumentet. Hvis den aktuelle understreng matcher understrengsargumentet, returnerer funktionen True ellers returnerer 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))> |
>
>
Produktion
True>
Tidskompleksitet: O(n*m)
hvor n er længden af strengargumentet, og m er længden af understrengsargumentet. Dette skyldes, at funktionen bruger en løkke til at iterere gennem alle mulige startindeks for understrengen i strengen og derefter bruger udskæring til at sammenligne den aktuelle understreng med understrengsargumentet. I værste tilfælde vil løkken iterere n-m+1 gange, og hver skiveoperation tager O(m) tid, hvilket resulterer i en samlet tidskompleksitet på O((n-m+1)m) = O(nm) .
Hjælpeplads: O(1)
Tjek Python-understrengen i streng ved hjælp af regulært udtryk
I Python kan du kontrollere, at python-understrengen i strengen er til stede ved hjælp af regulære udtryk . Regulære udtryk giver kraftfulde mønstermatchningsfunktioner, så du kan definere komplekse søgemønstre til understrengsmatchning. Sådan kan du bruge regulære udtryk til at tjekke for en understreng i en streng.
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'>)> |
>
>
Produktion
Yes! it is present in the string>
Tidskompleksitet: O(n), hvor n er længden af inputstrengen.
Rumkompleksitet: O(1), da vi ikke bruger ekstra plads
Tjek Python Substring i String ved at bruge metoden operator.contains().
Denne tilgang brugtoperator.contains()metode til at kontrollere om understrengen er til stede i streng Hvis betingelsen er True print ja ellers print no
Python3
xor i java
#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'>)> |
>
>
Produktion
Yes>
Tidskompleksitet: PÅ)
Hjælpeplads: O(1)