str.partition() și str.rpartition() în Python

Metode pentru șiruri Python 3.0+

Împarte un text în trei: partea dinainte de separator, separatorul și partea de după.

Sintaxă
text.partition(sep)
text.rpartition(sep)

Ce face str.partition() și str.rpartition()

partition(sep) caută prima apariție a separatorului și returnează tuplul (inainte, sep, dupa). Dacă separatorul lipsește, returnează (text, "", ""), deci despachetarea în trei variabile nu dă niciodată eroare.

rpartition() caută ultima apariție; dacă lipsește, returnează ("", "", text). Ambele există și pentru bytes.

Parametri

Parametru Descriere
sep Separatorul (nu poate fi gol).

Ce returnează

Un tuplu cu trei texte.

Exemple

Exemplul 1: Chei și valori

for linie in ["port=8080", "debug", "url=a=b"]:
    cheie, egal, valoare = linie.partition("=")
    print(repr(cheie), repr(valoare), "are valoare" if egal else "fără valoare")

Rezultat

'port' '8080' are valoare
'debug' '' fără valoare
'url' 'a=b' are valoare

Exemplul 2: Extensia unui fișier

print("arhiva.tar.gz".rpartition("."))
print("README".rpartition("."))
print(b"user@host".partition(b"@"))

Rezultat

('arhiva.tar', '.', 'gz')
('', '', 'README')
(b'user', b'@', b'host')

Greșeli frecvente

  • Dai un separator gol: partition("") dă ValueError: empty separator.

Comenzi înrudite