Con split il lin­guag­gio di pro­gram­ma­zio­ne web Python vi offre un modo per dividere le stringhe in punti fissi. L’aspetto esatto di questa sud­di­vi­sio­ne è de­ter­mi­na­to dai due parametri separator e maxsplit.

Web Hosting
Diventa il n°1 della rete con il provider di hosting n°1 in Europa
  • Di­spo­ni­bi­li­tà garantita al 99,99%
  • Dominio, SSL ed e-mail inclusi
  • As­si­sten­za 24/7 in lingua italiana

Cos’è split in Python?

In alcuni casi può essere utile o ad­di­rit­tu­ra ne­ces­sa­rio dividere una stringa in Python. Il metodo ap­pro­pria­to è split. La sud­di­vi­sio­ne viene so­li­ta­men­te ef­fet­tua­ta in cor­ri­spon­den­za degli spazi di una stringa e può essere con­trol­la­ta da diversi parametri. Esistono diverse forme di split in Python che possono essere utili a seconda dell’ap­pli­ca­zio­ne.

Sintassi e fun­zio­na­li­tà di split in Python

La sintassi di base di split in Python è la seguente:

string.split(separator, maxsplit)

separator e maxsplit sono i due parametri che possono essere uti­liz­za­ti fa­col­ta­ti­va­men­te. Se non viene spe­ci­fi­ca­to alcun parametro, split divide la stringa cor­ri­spon­den­te per ogni singolo spazio. Il parametro separator specifica quale stringa deve essere divisa. Ogni volta che ciò avviene, si verifica la sud­di­vi­sio­ne cor­ri­spon­den­te. Con maxsplit potete spe­ci­fi­ca­re la frequenza con cui la stringa deve essere divisa. Se non spe­ci­fi­ca­te questo parametro, il programma eseguirà un numero infinito di sud­di­vi­sio­ni.

Semplici esempi di split in Python con separator

Tre semplici esempi sono adatti a il­lu­stra­re come si può dividere una stringa con split in Python. Trovate la struttura di base in un tutorial su Python.

Dividere gli spazi

Nel primo codice, la stringa si divide re­go­lar­men­te in cor­ri­spon­den­za degli spazi. Il codice ap­pro­pria­to è il seguente:

text = "Questo è un testo di esempio"
print(text.split())

Il risultato ottenuto si presenta come segue:

["Questo", "è", "un", "testo", "di", "esempio"]

Dividere in cor­ri­spon­den­za delle virgole

Nel secondo esempio, dividete la stringa in cor­ri­spon­den­za delle virgole. Di seguito il comando ap­pro­pria­to:

animali = "cane, gatto, topo, cavallo"
print(animali.split(", " ))

Ottenete il seguente risultato:

["cane", "gatto", "topo", "cavallo"]

Dividere con il can­cel­let­to

Potete anche uti­liz­za­re un can­cel­let­to per separare i termini l’uno dall’altro. Inoltre, assegnate il valore x a split in Python. Il codice cor­ri­spon­den­te è il seguente:

colorestring = "blu#rosso#giallo#arancione"
colori = colore_string.split("#")
print (colori)

Il risultato si presenta quindi così:

["blu", "rosso", "giallo", "arancione"]

Definire maxsplit per split in Python

Il secondo parametro maxsplit funziona in modo al­tret­tan­to semplice. Questi tre esempi spiegano come funziona:

maxsplit impostato su 0

Nel primo esempio, abbiamo impostato maxsplit su 0:

colori = "blu, rosso, giallo, arancione"
print(colori.split(", ", 0))

Il risultato si presenta come segue:

["blu, rosso, giallo, arancione"]

maxsplit impostato su 1

Se impostate maxsplit su 1, il risultato cambia. Questo è il codice:

colori = "blu, rosso, giallo, arancione"
print(colori.split(", ", 1))

Il risultato ottenuto dopo split in Python:

["blu", "rosso, giallo, arancione"]

maxsplit impostato su 2

Per una doppia divisione, impostate maxsplit su 2 ed eseguite split in Python. Questo è il codice ap­pro­pria­to:

colori = "blu, rosso, giallo, arancione"
print(colori.split(", ", 2))

Il risultato si presenta così:

["blu", "rosso", "giallo, arancione"]

Uti­liz­za­re split in Python all’interno di singole parole

Sebbene la variante pre­de­fi­ni­ta sia una divisione con virgole o spazi, potete anche dividere le stringhe all’interno di parole spe­ci­fi­che. Nell’esempio seguente, prendiamo di nuovo i nomi degli animali e li dividiamo alla lettera a. Funziona così:

animali = "cane, gatto, topo, cavallo"
print(animali.split("a"))

Il risultato ottenuto sembra insolito, ma funziona come previsto:

["c", "ne, g", "tto, topo, c" "v" "llo"]

Se ora ag­giun­ge­te il parametro maxsplit e limitate il numero delle sud­di­vi­sio­ni a 1, otterrete il seguente risultato:

animali = "cane, gatto, topo, cavallo"
print(animali.split("a", 1))
["c", "ne, gatto, topo, cavallo"]

Con­ver­ti­re una stringa in una lista con split in Python

Una funzione popolare e spesso molto utile di split è quella di con­ver­ti­re una stringa in una lista in Python. Per questo vi servono entrambi i parametri separator e maxsplit. Nell’esempio seguente, la nostra lista di colori viene divisa dai can­cel­let­ti e ordinata tramite maxsplit in una lista con un massimo di due elementi. A tal fine, im­po­stia­mo maxsplit sul valore 1. Il codice cor­ri­spon­den­te si presenta come segue:

colore_string = "blu#rosso#giallo#arancione"
colori = colore_string.split("#", 1)
print(colori)

Si ottiene così il seguente risultato:

["blu", "rosso#giallo#arancione"]

La dif­fe­ren­za tra split e rsplit in Python

Oltre a split, in Python esiste anche il metodo rsplit. È simile alla variante pre­sen­ta­ta qui e in molti casi produce esat­ta­men­te lo stesso risultato. In par­ti­co­la­re, se il parametro opzionale maxsplit non è spe­ci­fi­ca­to, il risultato è identico. Tuttavia, se impostate il parametro separator su None, la­scian­do­lo quindi vuoto, e spe­ci­fi­ca­te il valore 2 per maxsplit, noterete una dif­fe­ren­za:

animali = "cane, gatto, topo, cavallo"
print(animali.split(None, 2))

Di seguito il risultato con split in Python:

["cane", "gatto", "topo", "cavallo"]

Quindi split divide la stringa da sinistra.

Se ora uti­liz­za­te rsplit con il seguente codice:

animali = "cane, gatto, topo, cavallo"
print(animali.rsplit(None, 2))

otterrete questo risultato:

["cane, gatto", "topo", "cavallo"]

La sud­di­vi­sio­ne con rsplit avviene quindi da destra.

Vai al menu prin­ci­pa­le