Stringsammenligning i Python

Stringsammenligning er en grunnleggende operasjon i alle programmeringsspråk, inkludert Python. Det gjør oss i stand til å fastslå strengers relative posisjoner, rekkefølge og likhet. Python har en rekke operatorer og teknikker for å sammenligne strenger, hver med en spesifikk funksjon. Vi vil undersøke mange metoder for sammenligning av Python-strenger i denne artikkelen og forstå hvordan du bruker dem.

  Input:   'Geek' == 'Geek'  'Geek'  <'geek'  'Geek'>'Geek' 'Geek' != 'Geek' Utdata: Sant Sant Usant Usant Forklaring: I dette sammenligner vi to strenger hvis de er like med hverandre. 

Python-strengsammenligning

  • Ved hjelp av Relasjonelle operatører
  • Ved hjelp av Vanlig uttrykk
  • Bruker Is Operator
  • Opprette en brukerdefinert funksjon.

Lik String Python u synge Relasjonelle operatører

De relasjonsoperatører sammenligne Unicode-verdiene til tegnene i strengene fra den nullte indeksen til slutten av strengen. Den returnerer deretter en boolsk verdi i henhold til operatoren som brukes. Den sjekker Python-strengekvivalens.

Python3




print> (> 'Geek'> => => 'Geek'> )> print> (> 'Geek'> <> 'geek'> )> print> (> 'Geek'> >> 'geek'> )> print> (> 'Geek'> !> => 'Geek'> )>

Produksjon

True True False False 

Lik String Python u synge Vanlig uttrykk

I Python kan du bruke regulære uttrykk for å sjekke Python-strengekvivalens ved å bruke re> modul. Vanlig uttrykk gi en fleksibel og kraftig måte å definere mønstre og utføre mønstertilpasningsoperasjoner på strenger .

Python3




import> re> def> compare_strings(string1, string2):> > pattern> => re.> compile> (string2)> > match> => re.search(pattern, string1)> > if> match:> > print> (f> ''{string2}' found in '{string1}''> )> > else> :> > print> (f> ''{string2}' not found in '{string1}''> )> string1> => 'GeeksForGeeks'> string2> => 'GeeksFor'> string3> => 'Geeks'> compare_strings(string1, string2)> compare_strings(string1, string3)>

Produksjon

'GeeksFor' found in 'GeeksForGeeks' 'Geeks' found in 'GeeksForGeeks' 

Stringsammenligning i Python u synge jeg s Operatør

De == operatør sammenligner verdiene til begge operandene og sjekker verdilikhet. Mens er operatør sjekker om begge operandene refererer til samme objekt eller ikke. Det samme er tilfellet for != og er ikke . La oss forstå Python-streng Ekvivalens med et eksempel.

Python3




str1> => 'Geek'> str2> => 'Geek'> str3> => str1> print> (> 'ID of str1 ='> ,> hex> (> id> (str1)))> print> (> 'ID of str2 ='> ,> hex> (> id> (str2)))> print> (> 'ID of str3 ='> ,> hex> (> id> (str3)))> print> (str1> is> str1)> print> (str1> is> str2)> print> (str1> is> str3)> str1> +> => 's'> str4> => 'Geeks'> print> (> ' ID of changed str1 ='> ,> hex> (> id> (str1)))> print> (> 'ID of str4 ='> ,> hex> (> id> (str4)))> print> (str1> is> str4)>

Produksjon

ID of str1 = 0x7f6037051570 ID of str2 = 0x7f6037051570 ID of str3 = 0x7f6037051570 True True True ID of changed str1 = 0x7f60356137d8 ID of str4 = 0x7f60356137a0 False 

Objekt-IDen til strengene kan variere på forskjellige maskiner. Objekt-IDene til str1, str2 og str3 var de samme, derfor er resultatet True i alle tilfellene. Etter at objekt-IDen til str1 er endret, vil resultatet av str1 og str2 være usann. Selv etter å ha opprettet str4 med det samme innholdet som i den nye str1, vil svaret være usant ettersom objekt-IDene deres er forskjellige. Vice versa vil skje med er ikke.

Stringsammenligning i Python Opprette en brukerdefinert funksjon.

Ved å bruke relasjonsoperatorer kan vi bare sjekke Python-strengekvivalens ved deres Unicode. For å sammenligne to strenger i henhold til noen andre parametere, kan vi gjøre brukerdefinerte funksjoner . I den følgende koden vil vår brukerdefinerte funksjon sammenligne strengene basert på antall sifre.

Python3




# function to compare string> # based on the number of digits> def> compare_strings(str1, str2):> > count1> => 0> > count2> => 0> > > for> i> in> range> (> len> (str1)):> > if> str1[i]>> => '0'> and> str1[i] <> => '9'> :> > count1> +> => 1> > > for> i> in> range> (> len> (str2)):> > if> str2[i]>> => '0'> and> str2[i] <> => '9'> :> > count2> +> => 1> > > return> count1> => => count2> print> (compare_strings(> '123'> ,> '12345'> ))> print> (compare_strings(> '12345'> ,> 'geeks'> ))> print> (compare_strings(> '12geeks'> ,> 'geeks12'> ))>

Produksjon

False False True