Piton

Cum să împărțiți șirurile în Python

Cum să împărțiți șirurile în Python
Acest articol va explica cum să împărțiți șirurile în python folosind metodele „split ()” și „partition ()”. Aceste metode sunt utile mai ales dacă doriți să convertiți o propoziție sau un grup de cuvinte în tipuri Python parsabile și iterabile. Toate mostrele de cod din acest ghid sunt testate cu versiunea 3 a Python.8.6.

Metoda Split

Metoda „split ()” poate fi utilizată pentru a împărți cuvinte folosind un separator specificat de utilizator. Returnează o listă de cuvinte împărțite fără a include separatorul. Dacă nu este specificat niciun separator de către utilizator, spațiul alb (unul sau mai multe) este utilizat ca un singur separator.

De exemplu, codul de mai jos va returna „['Linux', 'Hint']” ca ieșire:

text = "Sugestie pentru Linux"
text.Despică()

Codul de mai jos va returna „['LinuxHint', 'com']” ca ieșire atunci când „.”Este folosit ca separator:

text = "LinuxHint.com "
text.Despică(".”)

Separatorul nu trebuie să fie un singur caracter. Metoda divizării ia două argumente:

Ambele argumente sunt opționale. După cum sa menționat mai sus, dacă argumentul „sep” nu este specificat, spațiul alb este utilizat ca separator pentru împărțire. Argumentul „maxsplit” are o valoare implicită „-1” și împarte în mod implicit toate aparițiile. Luați în considerare codul de mai jos:

text = "LinuxHint.co.ne"
text.Despică(".”)

Se va returna „['LinuxHint', 'co', 'us']” ca ieșire. Dacă doriți să opriți divizarea la prima apariție a separatorului, specificați „1” ca argument „maxsplit”.

text = "LinuxHint.co.ne"
text.Despică(".”, 1)

Codul de mai sus va returna „['LinuxHint', 'co.noi '] ”ca rezultat. Doar specificați numărul de apariții în care doriți ca procesul de împărțire să se oprească ca al doilea argument.

Rețineți că, dacă există separatoare consecutive, un șir gol va fi returnat pentru separatoarele rămase după prima divizare (când argumentul „maxsplit” nu este utilizat):

text = "LinuxHint ... com"
text.Despică(".")

Codul de mai sus va returna „['LinuxHint',”, 'com'] ”ca ieșire. În cazul în care doriți să eliminați șirurile goale din lista rezultată, puteți utiliza următoarea declarație de înțelegere a listei:

text = "LinuxHint ... com"
rezultat = text.Despică(".")
rezultat = [element pentru articol în rezultat dacă element != ""]
print (rezultat)

Veți primi „['LinuxHint', 'com']” ca rezultat după ce rulați exemplul de cod de mai sus.

Rețineți că metoda „split ()” se deplasează de la stânga la dreapta pentru a împărți șirurile în cuvinte. Dacă doriți să împărțiți șirul de la dreapta la stânga, utilizați în schimb „rsplit ()”. Sintaxa, utilizarea și argumentele sale sunt exact aceleași cu metoda „split ()”.

Dacă nu se găsește niciun separator în șir în timp ce se utilizează metodele „split ()” sau „rsplit ()”, șirul original este returnat ca singur element de listă.

Metoda partiției

Metoda „partition ()” poate fi utilizată pentru a împărți șirurile și funcționează identic cu metoda „split ()” cu unele diferențe. Cea mai notabilă diferență este că reține separatorul și îl include ca element în tuplul rezultat care conține cuvinte împărțite. Acest lucru este util mai ales dacă doriți să împărțiți șirul într-un obiect iterabil (tuplu în acest caz) fără a elimina niciun caracter original. Luați în considerare codul de mai jos:

text = "LinuxHint.com "
rezultat = text.partiție (".")
print (rezultat)

Exemplul de cod de mai sus va returna „('LinuxHint', '.„,„ com ”)” ca ieșire. Dacă doriți ca rezultatul să fie de tip listă, utilizați în schimb următorul exemplu de cod:

text = "LinuxHint.com "
rezultat = listă (text.partiție ("."))
print (rezultat)

Ar trebui să obțineți „['LinuxHint', '.',' com '] ”ca ieșire după executarea exemplului de cod de mai sus.

Metoda „partiție ()” acceptă un singur argument numit „sep”. Utilizatorii pot specifica un separator de orice lungime. Spre deosebire de metoda „split ()”, acest argument este obligatoriu, deci nu puteți omite separatorul. Cu toate acestea, puteți specifica spațiul alb ca separator.

Rețineți că metoda partiției se oprește la prima apariție a separatorului. Deci, dacă șirul dvs. conține mai multe separatoare, metoda „partiție ()” va ignora toate celelalte apariții. Iată un exemplu care ilustrează acest lucru:

text = "LinuxHint.co.ne"
rezultat = listă (text.partiție ("."))
print (rezultat)

Exemplul de cod va produce „['LinuxHint', '.',' co.noi '] ”ca rezultat. Dacă doriți să împărțiți la toate aparițiile separatorului și să includeți și separatorul în lista finală, poate fi necesar să utilizați un model „Expresie regulată” sau „RegEx”. Pentru exemplul menționat mai sus, puteți utiliza un model RegEx în felul următor:

import re
text = "LinuxHint.co.ne"
rezultat = re.Despică("(\.)", text)
print (rezultat)

Veți primi „['LinuxHint', '.',' co ','.',' noi '] ”ca ieșire după executarea exemplului de cod de mai sus. Caracterul punct a fost scăpat în declarația RegEx menționată mai sus. Rețineți că, deși exemplul de mai sus funcționează cu un singur caracter de punct, este posibil să nu funcționeze cu separatoare complexe și șiruri complexe. Este posibil să fie necesar să vă definiți propriul model RegEx, în funcție de cazul dvs. de utilizare. Exemplul este menționat aici doar pentru a vă oferi o idee despre procesul de păstrare a separatorului în lista finală folosind instrucțiunile RegEx.

Metoda „partiție ()” poate lăsa uneori șiruri goale, mai ales atunci când separatorul nu se găsește în șirul de despărțit. În astfel de cazuri, puteți utiliza instrucțiunile de înțelegere a listei pentru a elimina șirurile goale, așa cum se explică în secțiunea de metodă „split ()” de mai sus.

text = "LinuxHint"
rezultat = listă (text.partiție ("."))
rezultat = [element pentru articol în rezultat dacă element != ""]
print (rezultat)

După ce rulați codul de mai sus, ar trebui să primiți „['LinuxHint']” ca ieșire.

Concluzie

Pentru divizări simple și directe, puteți utiliza metodele „split ()” și „partition ()” pentru a obține tipuri iterabile. Pentru șiruri și separatoare complexe, va trebui să utilizați instrucțiunile RegEx.

Top 10 jocuri de jucat pe Ubuntu
Platforma Windows a fost una dintre platformele dominante pentru jocuri din cauza procentului imens de jocuri care se dezvoltă astăzi pentru a sprijin...
Cele mai bune 5 jocuri arcade pentru Linux
În zilele noastre, computerele sunt mașini serioase folosite pentru jocuri. Dacă nu puteți obține noul scor mare, veți ști la ce mă refer. În această ...
Battle For Wesnoth 1.13.6 Development Released
Battle For Wesnoth 1.13.6 released last month, is the sixth development release in the 1.13.x series and it delivers a number of improvements, most no...