logo

Comproveu si String conté subcadenes a Python

Aquest article tractarà com comprovar si a Python string conté una altra cadena o una subcadena en Python. Donades dues cadenes, comproveu si hi ha una subcadena a la cadena donada.

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

Subcadena de Python a String

Comprovar una subcadena és una de les tasques més utilitzades a Python. Python utilitza molts mètodes per comprovar una cadena que conté una subcadena com, find(), index(), count(), etc. El mètode més eficient i ràpid és utilitzar un en operador que s'utilitza com a operador de comparació. Aquí tractarem diferents enfocaments:



  • Utilitzant el If-Else
  • Utilitzant In Operator
  • Comprovació utilitzant mètode split().
  • Utilitzant mètode find().
  • Utilitzant mètode count().
  • Utilitzant mètode index().
  • Ús de la comprensió de llistes
  • Utilitzant la funció lambda
  • Utilitzant __contains__ classe de màgia.
  • Ús de la funció de tall
  • Utilitzant expressions regulars
  • utilitzant el mètode operator contains().

Comproveu Subcadena de Python a String utilitzant el If-Else

A Python, podeu comprovar que la subcadena de Python a la cadena està present mitjançant un si una altra cosa declaració. La sentència if-else us permet executar condicionalment diferents blocs de codi en funció de si la condició és certa o falsa.

Python 3








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

>

per a la matriu de cadenes java
>

Sortida

Yes! it is present in the string>

Complexitat temporal: O(n)
Espai auxiliar: O(1)

Comprovació de la subcadena de Python a String utilitzant En Operador

A Python, podeu comprovar fàcilment si hi ha una subcadena en una cadena determinada utilitzant elin>operador. Elin>L'operador s'utilitza per comprovar si un valor particular (subcadena) existeix dins d'una seqüència.

Python 3




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

>

>

Sortida

Substring found! Substring not found!>

Complexitat temporal: O(n)
Espai auxiliar: O(1)

Comprovació de la subcadena de Python a String mitjançant el mètode Split().

Comprovar la subcadena de Python a la cadena està present o no s'utilitza dividir (). Primer dividiu la cadena donada en paraules i emmagatzemeu-les en una variable s i després utilitzant la condició if, comproveu si hi ha una subcadena a la cadena donada o no.

Python 3




# input strings str1 and substr> string>=> 'geeks for geeks'> # or string=input() ->prenent l'entrada de l'usuari>>> => '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'>)>

>

>

Sortida

Yes>

Complexitat temporal: O(n + m)
Espai auxiliar: O(n)

Comproveu la subcadena de Python a String mitjançant el mètode Find().

Podem comprovar iterativament cada paraula, però Python ens proporciona una funció integrada trobar () que comprova si hi ha una subcadena a la cadena, cosa que es fa en una línia. La funció find() retorna -1 si no es troba, en cas contrari retorna la primera ocurrència, de manera que amb aquesta funció es pot resoldre aquest problema.

Python 3




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

>

>

Sortida

Yes>

Complexitat temporal: O(N)
Espai auxiliar: O(1)

Comproveu la subcadena de Python a la cadena mitjançant el mètode Count().

També podeu comptar el nombre d'ocurrències d'una subcadena específica en una cadena, després podeu utilitzar el Python comptar () mètode. Si no es troba la subcadena, sí s'imprimirà, en cas contrari, no s'imprimirà.

Python 3




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

>

>

Sortida

No>

Complexitat temporal: O(N)
Espai auxiliar: O(1)

Comproveu la subcadena de Python a la cadena mitjançant el mètode Index().

El Mètode index(). retorna l'índex inicial de la subcadena passat com a paràmetre. Aquí subcadena està present a l'índex 16.

Python 3




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

>

>

Sortida

16>

Complexitat temporal: O(N)
Espai auxiliar: O(1)

Comproveu la subcadena de Python a la cadena u cantar Comprensió de llista

Per comprovar la subcadena de Python a la cadena utilitzant comprensió de llista . L'ús de la comprensió de llista proporciona una manera concisa de comprovar si hi ha una subcadena en una cadena i determinar si existeix en alguna de les paraules.

Python 3




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

>

>

Sortida

['Yes']>

Complexitat temporal: O(N)
Espai auxiliar: O(1)

Comproveu la subcadena de Python a la cadena utilitzant la funció Lambda

Per comprovar la subcadena de Python a la cadena utilitzant funció lambda . L'ús d'una funció lambda proporciona una manera concisa de comprovar si hi ha una subcadena en una cadena i determinar si existeix en alguna de les paraules.

Python 3




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

precedencia de l'operador java

>

>

Sortida

['Yes']>

Complexitat temporal: O(n + m)
Espai auxiliar: O(m)

Comproveu la subcadena de Python a String mitjançant la classe màgica __contains__.

Per comprovar la subcadena de Python a la cadena, utilitzem __contains__(). Aquest mètode s'utilitza per comprovar si la cadena està present a l'altra cadena o no.

Python 3




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

edat de pete davidson

>

>

Sortida

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

Complexitat temporal: O(N)
Espai auxiliar: O(1)

Comproveu la subcadena de Python a la cadena utilitzant Slicing

Comproveu la subcadena de Python a la cadena mitjançant el tall. Aquesta implementació utilitza un bucle per iterar a través de tots els índexs inicials possibles de la subcadena de la cadena i després utilitza tallant per comparar la subcadena actual amb l'argument de la subcadena. Si la subcadena actual coincideix amb l'argument de la subcadena, aleshores la funció retorna True en cas contrari retorna False.

Python 3




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

>

>

Sortida

True>

Complexitat temporal: O(n*m)
on n és la longitud de l'argument de la cadena i m és la longitud de l'argument de la subcadena. Això es deu al fet que la funció utilitza un bucle per iterar a través de tots els possibles índexs inicials de la subcadena de la cadena i després utilitza el tall per comparar la subcadena actual amb l'argument de la subcadena. En el pitjor dels casos, el bucle repetirà n-m+1 vegades, i cada operació de tall pren temps O(m), resultant en una complexitat de temps total de O((n-m+1)m) = O(nm) .
Espai auxiliar: O(1)

Comproveu la subcadena de Python a la cadena mitjançant l'expressió regular

A Python, podeu comprovar que la subcadena de Python a la cadena està present mitjançant expressions regulars . Les expressions regulars proporcionen potents capacitats de concordança de patrons, que us permeten definir patrons de cerca complexos per a la concordança de subcadenes. A continuació s'explica com podeu utilitzar expressions regulars per comprovar si hi ha una subcadena en una cadena.

Python 3




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

>

>

Sortida

Yes! it is present in the string>

Complexitat temporal: O(n), on n és la longitud de la cadena d'entrada.
Complexitat espacial: O(1), ja que no estem utilitzant cap espai addicional

Comproveu la subcadena de Python a la cadena utilitzant el mètode operator.contains().

Aquest enfocament utilitzatoperador.conté()mètode per comprovar si la subcadena està present a la cadena Si la condició és True imprimiu sí en cas contrari imprimiu no

Python 3




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

>

>

Sortida

Yes>

Complexitat temporal: O(N)
Espai auxiliar: O(1)