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.
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
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)> |
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'> ))> |
Výstup
False False True