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
mikrolitické jadro
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 pomocoure>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
obsahuje java metódu
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'>))> |
>
string.format v jave
>
Výkon
False False True>