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ștepartition().
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ă.