Inversarea unui șir în Python

  • Reading time:10 minute pentru a citi

Inversarea unui șir în Python

Șirurile sunt obiecte imuabile în Python, ceea ce înseamnă că până și dacă am încerca să le inversăm vom întâlni o eroare. Chiar și așa, Python oferă alte funcții opționale pe care le putem folosi pentru a inversa șirurile, cum ar fi împărțirea sau funcția încorporată reversed().

Deoarece șirurile pot fi indexate, împărțite și de asemenea și iterate, acest lucru înseamnă că putem combina funcții variate atunci când le inversăm.

 

 

Deși pare a fi o abilitate de bază, a învăța cum să manipulezi șiruri în Python sau în orice alt limbaj de programare reprezintă o abilitate esențială care va fi folositoare când se va lucra cu difere tipuri de date.

Vom începe prin a crea un șir denumit mystr pe care îl vom iniția cu șirul “codeberryschool”. Folosing funcția type() care returnează clasa obiectului argument în paranteze, putem verifica că acesta este cu adevărat un obiect de tip șir, așa cum se poate vedea mai jos.

 

 

Inversarea unui obiect prin împărțire

Împărțirea este o tehnică care ne permite să extragem elemente din secvențe, cum ar fi șiruri, menționând indicele lor cu paranteze pătrate. Spre exemplu, din șirul mystr putem extrage elemente de la primul până la cel de-al treilea index, așa cum se poate observa mai jos.

 

 

Deoarece Python este un limbaj cu un index bazat pe zero, elementul din primul index este deci “o” și nu “c”. Pe lângă asta, elementul de la indexul 3 nu este inclus, deoarece în Python împărțim în mod normal până la elementul ultimului index, fără să-l includem.

 

Inversarea unui șir în Python

 

Pe lângă faptul că putem indexa elemente de la începutul unui șir, putem de asemenea să împărțim elemente de la sfârșitul unui șir folosind o indexare negativă. În exemplul de mai jos, rugăm interpretul să includă elemente de la începutul unui șir până la cel de-al treilea element de la sfârșitul șirului. Este de mare importantă să ne amintim că atunci când numărăm elementele de la sfârșitul unui șir începem cu -1 drept ultimul element și nu 0.

 

 

Putem ajunge la rezultatul de mai sus și prin împărțirea ultimelor trei elemente ale șirului mystr lăsând restul șirului intact, așa cum se poate observa mai jos.

 

 

Când împărțim putem include de asemenea și un al treilea integer opțional care menționează numărul elementelor pe care vrem să le sărim periodic atunci când împărțim. Acest lucru este cunoscut drept integer de tip step (pas). Primul și al doilea indice sunt cunoscute drept indicele start și stop, acestea indicând unde în șir se începe împărțirea și unde ar trebui să ne oprim.

 

mystr[start:stop:step]

 

Start, stop și step sunt opționale atunci când împărțim elementele unui șir. Când start și stop nu sunt menționate, valorile implicite sunt următoarele: indexul de start va fi 0(Zero), iar indexul de stop va fi lungimea șirului. Spre urmare, dacă nu menționăm indicele de start și de stop, se va reda întregul șir.

 

 

Folosind aceste offset-uri implicite putem inversa șirul specificând numărul step ca fiind -1.

 

 

Folosind un număr cu o valoare negativă vom face împărțirea să înceapă de la sfârșitul șirului până la început, deci de la dreapta spre stânga. Se va reda astfel o copie a obiectului șirului cu literele inversate, așa cum se poate vedea mai jos.

 

 

Inversarea unui șir folosind funcția inversă

Putem folosi de asemenea și funcția inversă împreună cu funcția .join() pentru a inversa orice șir în Python. Când un șir trece în funcția reversed(), acesta devine un obiect iterator, care va conține caracterele sale într-o ordine inversă.

 

 

Folosind funcția next(), putem accesa următoarele elemente ale acestui obiect iterator, așa cum se poarte observa mai jos.

 

 

Funcția join() ia elementele iterator-ului și le unește pentru a forma un șir. Folosing această funcție, putem uni aceste caractere pentru a forma un șir într-o ordine inversă.

 

 

În acest caz nu am menționat niciun separator, spre urmare caracterul va fi împreunat, așa cum se poate vedea mai jos.

 

 

Așa cum se poate vedea în output-ul de mai sus, am reușit să inversăm șirul “codeberryschool” astfel: loohcsyrrebedoc.

Rezumat

Dacă doriți să vedeți mai multe tutoriale de programare, consultați canalul nostru de Youtube, unde avem o mulțime de tutoriale video Python în limba engleză.

În seria noastră de tutoriale de programare Python, veți găsi materiale utile care vă vor ajuta să vă îmbunătățiți abilitățile de programare și să accelerați procesul de învățare.

Tutoriale de programare