Split in Python: come dividere le stringhe
Con split il linguaggio di programmazione web Python vi offre un modo per dividere le stringhe in punti fissi. L’aspetto esatto di questa suddivisione è determinato dai due parametri separator e maxsplit.
- Certificato SSL e protezione DDoS
- Velocità, flessibilità e scalabilità
- Dominio e consulente personale
- 1 anno gratis del gestionale di fatturazione elettronica FlexTax
Cos’è split in Python?
In alcuni casi può essere utile o addirittura necessario dividere una stringa in Python. Il metodo appropriato è split. La suddivisione viene solitamente effettuata in corrispondenza degli spazi di una stringa e può essere controllata da diversi parametri. Esistono diverse forme di split in Python che possono essere utili a seconda dell’applicazione.
Sintassi e funzionalità 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 utilizzati facoltativamente. Se non viene specificato alcun parametro, split divide la stringa corrispondente per ogni singolo spazio. Il parametro separator specifica quale stringa deve essere divisa. Ogni volta che ciò avviene, si verifica la suddivisione corrispondente. Con maxsplit potete specificare la frequenza con cui la stringa deve essere divisa. Se non specificate questo parametro, il programma eseguirà un numero infinito di suddivisioni.
Semplici esempi di split in Python con separator
Tre semplici esempi sono adatti a illustrare 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 regolarmente in corrispondenza degli spazi. Il codice appropriato è 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 corrispondenza delle virgole
Nel secondo esempio, dividete la stringa in corrispondenza delle virgole. Di seguito il comando appropriato:
animali = "cane, gatto, topo, cavallo"
print(animali.split(", " ))
Ottenete il seguente risultato:
["cane", "gatto", "topo", "cavallo"]
Dividere con il cancelletto
Potete anche utilizzare un cancelletto per separare i termini l’uno dall’altro. Inoltre, assegnate il valore x a split in Python. Il codice corrispondente è 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 altrettanto 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 appropriato:
colori = "blu, rosso, giallo, arancione"
print(colori.split(", ", 2))
Il risultato si presenta così:
["blu", "rosso", "giallo, arancione"]
Utilizzare split in Python all’interno di singole parole
Sebbene la variante predefinita sia una divisione con virgole o spazi, potete anche dividere le stringhe all’interno di parole specifiche. 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 aggiungete il parametro maxsplit e limitate il numero delle suddivisioni a 1, otterrete il seguente risultato:
animali = "cane, gatto, topo, cavallo"
print(animali.split("a", 1))
["c", "ne, gatto, topo, cavallo"]
Convertire una stringa in una lista con split in Python
Una funzione popolare e spesso molto utile di split è quella di convertire 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 cancelletti e ordinata tramite maxsplit in una lista con un massimo di due elementi. A tal fine, impostiamo maxsplit sul valore 1. Il codice corrispondente 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 differenza tra split e rsplit in Python
Oltre a split, in Python esiste anche il metodo rsplit. È simile alla variante presentata qui e in molti casi produce esattamente lo stesso risultato. In particolare, se il parametro opzionale maxsplit non è specificato, il risultato è identico. Tuttavia, se impostate il parametro separator su None, lasciandolo quindi vuoto, e specificate il valore 2 per maxsplit, noterete una differenza:
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 utilizzate rsplit con il seguente codice:
animali = "cane, gatto, topo, cavallo"
print(animali.rsplit(None, 2))
otterrete questo risultato:
["cane, gatto", "topo", "cavallo"]
La suddivisione con rsplit avviene quindi da destra.