Strengsammenligning i Python
Strengsammenligning er en grundlæggende operation i ethvert programmeringssprog, inklusive Python. Det gør os i stand til at konstatere strenges relative positioner, rækkefølge og lighed. Python har en række operatorer og teknikker til at sammenligne strenge, hver med en bestemt funktion. Vi vil undersøge adskillige Python-strengsammenligningsmetoder i denne artikel og forstå, hvordan man bruger dem.
Input: 'Geek' == 'Geek' 'Geek' <'geek' 'Geek'>'nørd' 'Nørd' != 'Nørd' Output: Sand Sand Falsk Falsk Forklaring: I denne sammenligner vi to strenge, hvis de er ens med hinanden.
Python streng sammenligning
- Ved brug af Relationelle operatører
- Ved brug af Almindelig udtryk
- Bruger Is Operator
- Oprettelse af en brugerdefineret fungere.
Lige til String Python u synge Relationelle operatører
Det relationelle operatører sammenligne Unicode-værdierne for tegnene i strengene fra det nulte indeks til slutningen af strengen. Det returnerer derefter en boolesk værdi i henhold til den anvendte operator. Det kontrollerer Python String Equivalence.
Python3
print> (> 'Geek'> => => 'Geek'> )> print> (> 'Geek'> <> 'geek'> )> print> (> 'Geek'> >> 'geek'> )> print> (> 'Geek'> !> => 'Geek'> )> |
Produktion
True True False False
Lige til String Python u synge Almindelig udtryk
I Python kan du bruge regulære udtryk til at kontrollere Python-strengækvivalens ved hjælp af re> modul. Regelmæssige udtryk give en fleksibel og kraftfuld måde at definere mønstre og udføre mønstertilpasningsoperationer på strenge .
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)> |
Produktion
'GeeksFor' found in 'GeeksForGeeks' 'Geeks' found in 'GeeksForGeeks'
Strengsammenligning i Python u synger jeg s Operatør
Det == operatør sammenligner værdierne af begge operander og kontrollerer værdilighed. Hvorimod er operatør kontrollerer, om begge operander refererer til det samme objekt eller ej. Det samme er tilfældet for != og er ikke . Lad os forstå Python streng Ligestilling 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)> |
Produktion
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
Strengenes objekt-id kan variere på forskellige maskiner. Objekt-id'erne for str1, str2 og str3 var de samme, derfor er resultatet Sandt i alle tilfældene. Efter at objekt-id'et for str1 er ændret, vil resultatet af str1 og str2 være falsk. Selv efter oprettelse af str4 med det samme indhold som i den nye str1, vil svaret være falsk, da deres objekt-id'er er forskellige. Vice versa vil ske med er ikke.
Strengsammenligning i Python Oprettelse af en brugerdefineret funktion.
Ved at bruge relationelle operatorer kan vi kun kontrollere Python String Equivalence ved deres Unicode. For at sammenligne to strenge ifølge nogle andre parametre, vi kan lave brugerdefinerede funktioner . I den følgende kode vil vores brugerdefinerede funktion sammenligne strengene baseret på antallet af cifre.
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'> ))> |
Produktion
False False True