logo

Porovnání řetězců v Pythonu

Porovnání řetězců je základní operací v jakémkoli programovacím jazyce, včetně Pythonu. Umožňuje nám zjistit relativní polohu strun, pořadí a rovnost. Krajta má řadu operátorů a technik pro porovnávání řetězců, z nichž každý má specifickou funkci. V tomto článku prozkoumáme četné metody porovnávání řetězců Pythonu a pochopíme, jak je používat.

unixový top příkaz
  Input:   'Geek' == 'Geek'  'Geek' <'geek'  'Geek'>'geek' 'Geek' != 'Geek' Výstup: Pravda Pravda Nepravda Nepravda Vysvětlení: V tomto porovnáváme dva řetězce, pokud jsou si navzájem rovny.>

Porovnání řetězců v Pythonu

  • Použitím Relační operátoři
  • Použitím Regulární výraz
  • Použití je operátor
  • Vytvoření a uživatelsky definované funkce.

Rovná se String Python u zpívat Relační operátoři

The relační operátory porovnejte hodnoty Unicode znaků řetězců od nultého indexu po konec řetězce. Poté vrátí booleovskou hodnotu podle použitého operátoru. Kontroluje ekvivalenci řetězců Pythonu.



Python3








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

>

>

Výstup

True True False False>

Rovná se String Python u zpívat Regulární výraz

V Pythonu můžete použít regulární výrazy ke kontrole ekvivalence řetězců Pythonu pomocíre>modul. Regulární výrazy poskytují flexibilní a výkonný způsob, jak definovat vzory a provádět operace porovnávání vzorů struny .

Python3

matematické metody v Javě




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ýstup

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

Porovnání řetězců v Pythonu u zpívat já s Operátor

The == operátor porovnává hodnoty obou operandů a kontroluje rovnost hodnot. Zatímco je operátor kontroluje, zda oba operandy odkazují na stejný objekt nebo ne. Totéž platí pro != a není . Pojďme si rozumět Pythonský řetězec Ekvivalence s příkladem.

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

>

>

přizpůsobená výjimka v jazyce Java

Výstup

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>

ID objektu řetězců se může na různých počítačích lišit. ID objektů str1, str2 a str3 byla stejná, takže výsledek je ve všech případech True. Po změně id objektu str1 bude výsledek str1 a str2 nepravdivý. I po vytvoření str4 se stejným obsahem jako v nové str1 bude odpověď nepravdivá, protože jejich ID objektů se liší. Naopak se stane s není.

Porovnání řetězců v Pythonu Vytvoření uživatelem definované funkce.

Pomocí relačních operátorů můžeme zkontrolovat ekvivalenci řetězců Pythonu pouze podle jejich Unicode. Abychom porovnali dva struny podle některých dalších parametrů můžeme vyrobit uživatelsky definované funkce . V následujícím kódu naše uživatelsky definovaná funkce porovná řetězce na základě 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'>))>

>

zarovnání obrázků v css

>

Výstup

False False True>