str.split() și str.rsplit() în Python

Metode pentru șiruri Python 3.0+

Împarte un text într-o listă de bucăți, după un separator.

Sintaxă
text.split(sep=None, maxsplit=-1)
text.rsplit(sep=None, maxsplit=-1)

Ce face str.split() și str.rsplit()

split() taie textul în bucăți acolo unde apare separatorul și returnează lista bucăților. Fără separator, taie după orice spațiu alb (spații, tab-uri, rânduri noi) și ignoră spațiile multiple și pe cele de la capete.

maxsplit limitează numărul de tăieturi. rsplit() face același lucru, dar începe tăierea de la dreapta, ceea ce contează doar când dai maxsplit: "a.b.c".rsplit(".", 1) dă ['a.b', 'c'].

Aceleași metode există și pentru bytes: b"a,b".split(b","). Operația inversă este str.join().

Parametri

Parametru Descriere
sep Opțional. Separatorul. Fără el (sau None), se taie după spații albe.
maxsplit Opțional. Numărul maxim de tăieturi. Implicit -1 (fără limită).

Ce returnează

O listă de texte.

Exemple

Exemplul 1: Separator explicit și implicit

print("Ana,Mihai,Ioana".split(","))
print("  mere   pere\tprune\n".split())
print("2026-10-19".split("-"))
print("a,,b".split(","))

Rezultat

['Ana', 'Mihai', 'Ioana']
['mere', 'pere', 'prune']
['2026', '10', '19']
['a', '', 'b']

Exemplul 2: maxsplit și rsplit()

linie = "Ana Maria Popescu"
prenume, nume = linie.rsplit(" ", 1)
print(prenume, "|", nume)

cheie, valoare = "parola=a=b=c".split("=", 1)
print(cheie, valoare)
print("arhiva.tar.gz".rsplit(".", 1))

Rezultat

Ana Maria | Popescu
parola a=b=c
['arhiva.tar', 'gz']

Exemplul 3: Citirea unor numere de pe un rând

rand = "12 7 30 5"
numere = [int(x) for x in rand.split()]
print(numere, sum(numere))
print(b"x;y;z".split(b";"))

Rezultat

[12, 7, 30, 5] 54
[b'x', b'y', b'z']

Greșeli frecvente

  • Scrii text.split(" ") pentru un text cu spații multiple și primești bucăți goale. split() fără argument tratează corect spațiile multiple.
  • Despachetezi în două variabile un text care nu conține separatorul: a, b = "abc".split(",") dă ValueError: not enough values to unpack. Verifică întâi sau folosește partition().

Comenzi înrudite

  • str.join(): Lipește textele dintr-o listă într-un singur text, cu un separator între ele.
  • str.partition() și str.rpartition(): Împarte un text în trei: partea dinainte de separator, separatorul și partea de după.
  • str.splitlines(): Împarte un text în rânduri, indiferent de tipul capetelor de rând (\n, \r\n, \r).
  • re.split(): Împarte un text oriunde se potrivește un model, de exemplu după mai mulți separatori deodată.