Cum se utilizează metoda split() în Python

În acest tutorial, veți învăța cum să utilizați metoda split() de la Python pentru a împărți un șir într-o listă de șiruri.

Când lucrați cu șiruri Python, puteți utiliza mai multe metode de șiruri încorporate pentru a obține copii modificate ale șirurilor, cum ar fi conversia în majuscule, sortarea unui șir și multe altele. O astfel de metodă este .split() care împarte un șir Python într-o listă de șiruri și vom afla mai multe despre el prin exemple de codare.

Până la sfârșitul tutorialului, veți învăța următoarele:

  • cum funcționează metoda .split().
  • cum să personalizați diviziunea folosind parametrii sep și maxsplit

Sa incepem!

Sintaxa metodei split() în Python

Iată sintaxa generală pentru a utiliza metoda split() a lui Python pe orice șir valid:

string.split(sep, maxsplit)

# Parameters:
sep, maxsplit

# Returns:
A list of strings

Aici, șirul poate fi orice șir valid Python.

Atât parametrii sep cât și maxsplit sunt opționali.

  • sep denotă separatorul pe care doriți să despărțiți șirul. Ar trebui să fie specificat ca șir.
  • maxsplit este un număr întreg care specifică de câte ori doriți să împărțiți șirul.

Valorile lor implicite sunt folosite atunci când nu furnizați parametri opționali.

  • Când nu furnizați valoarea sep în mod explicit, spațiul alb este folosit ca separator implicit.
  • Când nu specificați valoarea pentru maxsplit, aceasta este implicită -1, ceea ce înseamnă că șirul va fi împărțit la toate aparițiile separatorului.

Exprimarea sintaxei într-un limbaj simplu:

Metoda split() împarte un număr maxsplit șir de ori la apariția separatorului specificat de parametrul sep.

  O alternativă demnă la Google Analytics?

Acum că am învățat sintaxa metodei Python split() să continuăm să codificăm câteva exemple.

Împărțiți un șir Python într-o listă de șiruri

Daca ai Python 3 instalat pe mașina dvs., puteți codifica cu acest tutorial rulând următoarele fragmente de cod într-un REPL Python.

Pentru a porni REPL, rulați una dintre următoarele comenzi din terminal:

$ python
$ python -i

▶️ Puteți încerca și aceste exemple în editorul Python al tipstrick.ro.

În acest exemplu, py_str este un șir Python. Să apelăm metoda .split() pe py_str fără parametri și să observăm rezultatul.

py_str = "Learn how to use split() in Python"
py_str.split()

# Output
['Learn', 'how', 'to', 'use', 'split()', 'in', 'Python']

După cum s-a văzut mai sus, șirul este împărțit pe toate aparițiile spațiilor albe.

Împărțiți un șir Python pe apariția separatorilor

#1. Ca prim exemplu, să împărțim șirul py_str cu litere de subliniere duble (__) ca separator.

py_str = "All__the__best"
py_str.split(sep='__')

# Output
['All', 'the', 'best']

#2. Să luăm un alt exemplu. Aici, py_str are trei propoziții, fiecare terminată cu un punct (.).

py_str = "I love coding. Python is cool. I'm learning Python in 2022"
py_str.split(sep='.')

# Output
['I love coding', ' Python is cool', " I'm learning Python in 2022"]

▶️ Când apelăm metoda .split() pe acest șir, cu ‘.’ ca separator, lista rezultată are trei propoziții, așa cum se vede în celula de cod de mai sus.

#3. Să punem câteva întrebări:

  • Ce se întâmplă când separatorul nu apare niciodată în șir?
  • Cum se va produce scindarea în acest caz?

Iată un exemplu:

Încercăm să împărțim py_str la apariția asteriscului

py_str = "This line contains no asterisk."
py_str.split(sep='*')

# Output
['This line contains no asterisk.']

— ceea ce nu are loc.

Deoarece în acest caz nu se poate face nicio divizare, lista rezultată conține întregul șir.

În secțiunea următoare, vom vedea cum putem folosi metoda split() pe conținutul unui fișier text.

Împărțiți conținutul unui fișier Python

Când lucrați cu fișiere text în Python, poate fi necesar să împărțiți conținutul fișierului, pe baza unui separator, pentru o procesare mai ușoară.

  AIOps vs. MLOps: înțelegerea diferențelor cheie

Iată un exemplu de fișier text:

with open('sample.txt') as f:
  content = f.read()
  str_list= content.split(sep='...')
  for string in str_list:
    print(string,end='')

Fragmentul de cod de mai jos arată cum să utilizați split pe conținutul fișierului text eșantion.

  • Codul de mai sus face următoarele:
  • Utilizează managerul cu context pentru a deschide și a lucra cu fișierul text „sample.txt”.
  • Citește conținutul fișierului folosind metoda .read() pe obiectul fișier f.
  • Împarte conținutul despre apariția punctelor de suspensie separatoare (…) într-o listă str_list.

Parcurge str_list pentru a accesa fiecare șir și îl imprimă.

# Output
This is a sample text file
It contains info on
Getting started with <a href="https://tipstrick.ro.com/pcap-certification/">programming in Python</a>
According to the 2022 StackOverflow Developer Survey
Python is one of the most-loved programming languages
So what are you waiting for? Start learning!

Iată rezultatul.

Ca exercițiu, puteți încerca să împărțiți conținutul unui fișier text pe orice separator dorit.

Împărțiți un șir Python în bucăți

Când împărțiți un șir o dată, veți obține două bucăți; împărțirea lui de două ori va obține trei.

📋 În general, când împărțiți un șir de K ori, veți obține K + 1 bucăți.

Acest lucru este ilustrat mai jos.

Cum funcționează parametrul maxsplit (Imaginea autorului)

py_str = "Chunk#1  I'm a larger chunk, Chunk#2"
py_str.split(maxsplit=1)

# Output
['Chunk#1', "I'm a larger chunk, Chunk#2"]

#1. Am stabilit maxsplit egal cu 1. Nu am specificat un separator, așa că împărțirea va avea loc în mod implicit pe spații albe.

Chiar dacă a doua bucată din listă conține spații albe, împărțirea nu are loc deoarece împărțirea este acum controlată de valoarea maxsplit a unuia.

py_str = "Chunk#1 Chunk#2 I'm one large Chunk#3, even though I contain whitespaces"
py_str.split(maxsplit=2)

# Output
['Chunk#1',
 'Chunk#2',
 "I'm one large Chunk#3, even though I contain whitespaces"]

#2. Să creștem valoarea maxsplit la 2 și să observăm cum are loc împărțirea pentru următorul exemplu.

Ca și în exemplul anterior, valoarea maxsplit decide numărul de împărțiri efectuate. Obținem trei bucăți, împărțiri după prima și a doua apariție a spațiilor albe.

#3. Ce se întâmplă dacă setați maxsplit la o valoare mai mare decât numărul de apariții ale separatorului?

py_str = "There, are, only, 4, commas"
py_str.split(maxsplit=8)

# Output
['There,', 'are,', 'only,', '4,', 'commas']

În următoarea celulă de cod, setăm maxsplit-o la 8 când șirul conține doar patru virgule.

  Obțineți capabilitățile ușoare de partajare a ecranului de la Screenleap în Gmail

Aici, metoda split împarte py_str pe toate cele patru apariții ale unei virgule. Chiar dacă încercați să setați maxsplit la o valoare mai mică decât -1, să zicem, -7, împărțirea se va face pe toate aparițiile separatorului.

În continuare, să adunăm tot ce am învățat și să folosim ambii parametrii sep maxsplit.

Împărțiți un șir Python în bucăți pe un separator

py_str = "Chunk#1, Chunk#2, I'm one large Chunk#3, even though I contain a ,"
py_str.split(sep = ',',maxsplit=2)

# Output
['Chunk#1', ' Chunk#2', " I'm one large Chunk#3, even though I contain a ,"]

#1. Să presupunem că trebuie să împărțim șirul py_str în trei bucăți la apariția virgulei (,). Pentru a face acest lucru, putem seta valoarea sep la „,” și valoarea maxsplit la 2 în apelul de metodă.

După cum se vede în rezultat, împărțirea are loc de două ori la primele două apariții ale separatorului.

#2. Separatorul sep nu trebuie să fie întotdeauna un caracter special. Poate fi o secvență de caractere speciale, cum ar fi liniuțele de subliniere duble pe care le-am folosit mai devreme, sau poate fi chiar un subșir.

py_str = "You need to learn data structures, learn algorithms, and learn more!"
py_str.split(sep = 'learn',maxsplit=2)

# Output
['You need to ', ' data structures, ', ' algorithms, and learn more!']

Să setăm șirul „learn” ca argument sep și să vedem cum are loc împărțirea pentru diferite valori ale maxsplit. Aici, setăm maxsplit la 2.

py_str = "You need to learn data structures, learn algorithms, and learn more!"
py_str.split(sep = 'learn',maxsplit=-1)

# Output
['You need to ', ' data structures, ', ' algorithms, and ', ' more!']

#3. Dacă doriți să împărțiți py_str pe toate aparițiile șirului „learn”, putem apela această metodă .split() setând sep = „learn”—fără parametrul maxsplit. Acest lucru este echivalent cu setarea explicită a valorii maxsplit la -1, așa cum se arată în celula de cod de mai jos.

Vedem că diviziunea are loc în toate aparițiile lui „învățare”.

Încheierea

Sper că acum ați înțeles cum să utilizați metoda .split() cu șiruri Python.

  • Iată un rezumat al acestui tutorial:
  • Metoda .split() încorporată din Python împarte un șir într-o listă de șiruri.
  • Utilizați string.split() pentru a împărți șirul în toate aparițiile separatorului implicit, spații albe.

Folosiți string.split(sep,maxsplit) pentru a împărți șirul maxsplit de numărul de ori la apariția separatorului sep. Lista rezultată are maxsplit+1 elemente.

Ca un pas următor, puteți învăța cum să verificați dacă șirurile Python sunt palindrome sau anagrame.