Porównanie ciągów w Pythonie
Porównanie ciągów to podstawowa operacja w każdym języku programowania, w tym w Pythonie. Umożliwia nam ustalenie względnego położenia, kolejności i równości ciągów. Pyton ma wiele operatorów i technik porównywania ciągów, każdy z określoną funkcją. W tym artykule przeanalizujemy wiele metod porównywania ciągów znaków w języku Python i zrozumiemy, jak z nich korzystać.
Input: 'Geek' == 'Geek' 'Geek' <'geek' 'Geek'>'geek' 'Geek' != 'Geek' Wynik: Prawda Prawda Fałsz Fałsz Wyjaśnienie: W tym przykładzie porównujemy dwa ciągi znaków, jeśli są sobie równe.
Porównanie ciągów Pythona
- Za pomocą Operatorzy relacyjni
- Za pomocą Wyrażenie regularne
- Użycie operatora Is
- Tworząc określony przez użytkownika funkcjonować.
Równy String Python u śpiewać Operatorzy relacyjni
The Operatorzy relacyjni porównaj wartości Unicode znaków ciągów od indeksu zerowego do końca ciągu. Następnie zwraca wartość logiczną zgodnie z zastosowanym operatorem. Sprawdza równoważność ciągów Pythona.
Python3
print> (> 'Geek'> => => 'Geek'> )> print> (> 'Geek'> <> 'geek'> )> print> (> 'Geek'> >> 'geek'> )> print> (> 'Geek'> !> => 'Geek'> )> |
Wyjście
True True False False
Równy String Python u śpiewać Wyrażenie regularne
W Pythonie możesz używać wyrażeń regularnych, aby sprawdzić równoważność ciągów Pythona za pomocą re> moduł. Wyrażenia regularne zapewniają elastyczny i wydajny sposób definiowania wzorców i wykonywania operacji dopasowywania wzorców smyczki .
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)> |
Wyjście
'GeeksFor' found in 'GeeksForGeeks' 'Geeks' found in 'GeeksForGeeks'
Porównanie ciągów w Pythonie u zaśpiewaj ja S Operator
The == operator porównuje wartości obu operandów i sprawdza równość wartości. Mając na uwadze, że Jest operator sprawdza, czy oba operandy odnoszą się do tego samego obiektu, czy nie. To samo dotyczy != i nie jest . Pozwól nam zrozumieć Ciąg Pythona Równoważność z przykładem.
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)> |
Wyjście
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
Identyfikator obiektu ciągów może się różnić na różnych komputerach. Identyfikatory obiektów str1, str2 i str3 były takie same, dlatego wynik jest prawdziwy we wszystkich przypadkach. Po zmianie identyfikatora obiektu str1 wynik str1 i str2 będzie fałszywy. Nawet po utworzeniu str4 z tą samą zawartością, co w nowym str1, odpowiedź będzie fałszywa, ponieważ ich identyfikatory obiektów są różne. Odwrotnie się stanie z nie.
Porównanie ciągów w Pythonie Tworzenie funkcji zdefiniowanej przez użytkownika.
Używając operatorów relacyjnych, możemy sprawdzić równoważność ciągów Pythona jedynie na podstawie ich Unicode. Aby porównać dwa smyczki zgodnie z innymi parametrami, które możemy wykonać funkcje zdefiniowane przez użytkownika . W poniższym kodzie nasza funkcja zdefiniowana przez użytkownika porówna ciągi na podstawie liczby cyfr.
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'> ))> |
Wyjście
False False True