Porovnanie reťazcov v Pythone

Porovnávanie reťazcov je základnou operáciou v akomkoľvek programovacom jazyku, vrátane Pythonu. Umožňuje nám zistiť relatívnu polohu strún, ich usporiadanie a rovnosť. Python má množstvo operátorov a techník na porovnávanie reťazcov, pričom každý má špecifickú funkciu. V tomto článku preskúmame množstvo metód porovnávania reťazcov Pythonu a pochopíme, ako ich používať.

  Input:   'Geek' == 'Geek'  'Geek'  <'geek'  'Geek'>'geek' 'Geek' != 'Geek' Výstup: Pravda Pravda Nepravda Nepravda Vysvetlenie: V tomto porovnávame dva reťazce, ak sú si navzájom rovné. 

Porovnanie reťazcov v Pythone

  • Použitím Vzťahoví operátori
  • Použitím Regulárny výraz
  • Použitie je operátor
  • Vytvorenie a definované užívateľom funkciu.

Rovná sa String Python u spievať Vzťahoví operátori

The relačné operátory porovnajte hodnoty Unicode znakov reťazcov od nultého indexu po koniec reťazca. Potom vráti boolovskú hodnotu podľa použitého operátora. Kontroluje ekvivalenciu reťazcov Pythonu.

Python3




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

Výkon

True True False False 

Rovná sa String Python u spievať Regulárny výraz

V Pythone môžete použiť regulárne výrazy na kontrolu ekvivalencie reťazcov Pythonu pomocou re> modul. Regulárne výrazy poskytujú flexibilný a výkonný spôsob, ako definovať vzory a vykonávať operácie priraďovania vzorov struny .

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

Výkon

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

Porovnanie reťazcov v jazyku Python u spievaj ja s Operátor

The == operátor porovnáva hodnoty oboch operandov a kontroluje rovnosť hodnôt. Zatiaľ čo je operátor skontroluje, či oba operandy odkazujú na rovnaký objekt alebo nie. To isté platí pre != a nie je . Poďme pochopiť Reťazec Python Ekvivalencia s príkladom.

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

Výkon

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 ID reťazcov sa môže na rôznych počítačoch líšiť. ID objektov str1, str2 a str3 boli rovnaké, preto je výsledok vo všetkých prípadoch True. Po zmene id objektu str1 bude výsledok str1 a str2 nepravdivý. Aj po vytvorení str4 s rovnakým obsahom ako v novom str1 bude odpoveď nepravdivá, pretože ich ID objektov sú odlišné. Naopak sa stane s nie je.

Porovnanie reťazcov v Pythone Vytvorenie funkcie definovanej používateľom.

Použitím relačných operátorov môžeme skontrolovať ekvivalenciu reťazcov Pythonu iba podľa ich Unicode. Na porovnanie dvoch struny podľa niektorých ďalších parametrov vieme vyrobiť užívateľsky definované funkcie . V nasledujúcom kóde naša užívateľom definovaná funkcia porovná reťazce na základe počtu číslic.

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

Výkon

False False True