Compararea șirurilor este o operație fundamentală în orice limbaj de programare, inclusiv Python. Ne permite să stabilim pozițiile relative, ordonarea și egalitatea șirurilor. Piton are o serie de operatori și tehnici de comparare a șirurilor de caractere, fiecare având o funcție specifică. Vom examina numeroase metode de comparare a șirurilor Python în acest articol și vom înțelege cum să le folosim.
Input: 'Geek' == 'Geek' 'Geek' <'geek' 'Geek'>'Geek' 'Geek' != 'Geek' Ieșire: Adevărat Adevărat Fals Fals Explicație: În aceasta, comparăm două șiruri de caractere dacă sunt egale între ele.>
Comparația șirurilor Python
- Folosind Operatori Relaționali
- Folosind Expresie uzuala
- Utilizarea Is Operator
- Crearea unui definit de utilizator funcţie.
Egal cu String Python u cânta Operatori Relaționali
The operatori relaţionali comparați valorile Unicode ale caracterelor șirurilor de la indicele zero până la sfârșitul șirului. Apoi returnează o valoare booleană conform operatorului utilizat. Verifică Python String Equivalence.
Python3
cum se execută un script
print>(>'Geek'> =>=> 'Geek'>)> print>(>'Geek'> <>'geek'>)> print>(>'Geek'> >>>>)> print>(>'Geek'> !>=> 'Geek'>)> |
>
>
Ieșire
True True False False>
Egal cu String Python u cânta Expresie uzuala
În Python, puteți folosi expresii regulate pentru a verifica Echivalența șirurilor Python folosindre>modul. Expresii obisnuite oferă o modalitate flexibilă și puternică de a defini modele și de a efectua operațiuni de potrivire a modelelor siruri de caractere .
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)> |
>
>
Ieșire
'GeeksFor' found in 'GeeksForGeeks' 'Geeks' found in 'GeeksForGeeks'>
Comparație de șiruri în Python u canta eu s Operator
The == operator compară valorile ambilor operanzi și verifică egalitatea valorilor. Întrucât este operatorul verifică dacă ambii operanzi se referă la același obiect sau nu. La fel este și cazul != și nu este . Să înțelegem Python String Echivalența cu un exemplu.
Python3
plutește la sfoară
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)> |
>
>
listbox html
Ieșire
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-ul obiectului șirurilor poate varia pe diferite mașini. ID-urile obiectelor str1, str2 și str3 au fost aceleași, prin urmare rezultatul este adevărat în toate cazurile. După ce id-ul obiectului str1 este schimbat, rezultatul str1 și str2 va fi fals. Chiar și după crearea str4 cu același conținut ca în noul str1, răspunsul va fi fals deoarece ID-urile obiectelor lor sunt diferite. Viceversa se va întâmpla cu nu este.
Comparație de șiruri în Python Crearea unei funcții definite de utilizator.
Folosind operatori relaționali, putem verifica doar echivalența șirurilor Python după Unicode. Pentru a compara două siruri de caractere în funcție de alți parametri, putem face funcții definite de utilizator . În următorul cod, funcția noastră definită de utilizator va compara șirurile în funcție de numărul de 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]>>>> and> str1[i] <>=> '9'>:> >count1>+>=> 1> > >for> i>in> range>(>len>(str2)):> >if> str2[i]>>>> and> str2[i] <>=> '9'>:> >count2>+>=> 1> > >return> count1>=>=> count2> print>(compare_strings(>'123'>,>'12345'>))> print>(compare_strings(>'12345'>,>'geeks'>))> print>(compare_strings(>'12geeks'>,>'geeks12'>))> |
>
>
Ieșire
False False True>