Articolo originale: Python String split() and join() Methods – Explained with Examples

Quando lavori con le stringhe in Python, potresti dover suddividere una stringa in sottostringhe. O potresti aver bisogno di unire pezzi più piccoli per formare una stringa. I metodi delle stringhe di Python split() e join() ti aiutano ad eseguire queste operazioni facilmente.

In questo tutorial, imparerai i metodi delle stringhe split() e join() con molti esempi di codice.

Poiché le stringhe in Python sono immutabili, puoi chiamare questi metodi su di loro senza modificare le stringhe originali. Iniziamo!

Sintassi del Metodo split() di Python

Quando hai bisogno di dividere una stringa in sottostringhe, puoi usare il metodo split().

Il metodo split() opera su una stringa e restituisce una lista di sottostringhe. La sintassi è:

<string>.split(sep,maxsplit)

Nella sintassi qui in alto:

  • <string> è una qualsiasi stringa valida in Python,
  • sep è il separatore in corrispondenza del quale vuoi dividere la stringa. Deve essere specificato come stringa.
<string>  sep = ","
  • sep è un argomento opzionale. Di default, il metodo divide le stringhe sugli spazi.
  • maxsplit è un argomento opzionale che indica quante volte vuoi dividere <string>.
  • maxsplit ha come valore di default -1, che divide la stringa su tutte le occorrenze di sep.
<string>  first  maxsplit = 1

E impostare maxsplit = 1 ti lascerà con due porzioni - una con la sezione di <string> prima della prima virgola, e un'altra con la sezione di <string> dopo la prima virgola.

Quando dividi una stringa una volta sola, ottieni 2 porzioni. Quando la dividi due volte, ottieni 3 porzioni. Quando dividi una stringa k volte, ottieni k+1 porzioni.

▶ Prendiamo alcuni esempi per vedere il metodo split() in azione.

Esempi del Metodo split() in Python

Iniziamo con my_string, mostrata qui sotto.

my_string = "I code for 2 hours everyday"

Ora, chiamiamo il metodo split() su my_string, senza gli argomenti sep e maxsplit.

my_string.split()
image-50

Puoi notare che my_string è stata divisa in corrispondenza di tutti gli spazi e che viene restituita una lista di sottostringhe, come mostrato in alto.

▶ Prendiamo ora in considerazione il seguente esempio. Qui, my_string contiene nomi di frutti separati da virgole.

my_string = "Apples,Oranges,Pears,Bananas,Berries"

Dividiamo ora my_string in corrispondenza delle virgole – imposta sep = "," o specifica solo "," nella chiamata del metodo.

my_string.split(",")

Come previsto, il metodo split() restituisce una lista di frutti, dove ogni frutto in my_string è ora un elemento della lista.

image-51

▶ Usiamo ora anche l'argomento opzionale maxsplit impostandolo su 2.

my_string.split(",",2)
image-52

Proviamo ad analizzare la lista restituita.

Ricorda che my_string è "Apples,Oranges,Pears,Bananas,Berries", e abbiamo deciso di dividerla in corrispondenza delle virgole (",").

  • La prima virgola si trova dopo Apples, e dopo la prima divisione avrai due elementi, Apples e Oranges,Pears,Bananas,Berries.
  • La seconda virgola si trova dopo Oranges. E avrai 3 elementi, Apples, Oranges, e Pears,Bananas,Berries dopo la seconda divisione.
  • A questo punto, maxsplit ha raggiunto il valore 2, e non si può fare nessun'altra divisione.
  • Ecco perché la porzione di stringa dopo la seconda virgola è ammassata insieme in un solo elemento nella lista restituita.

Spero che tu abbia capito come funzionano il metodo split() e gli argomenti sep e maxsplit.

Sintassi del Metodo join() di Python

Ora che sai come dividere una stringa in sottostringhe, è il momento di imparare come usare il metodo join() per formare una stringa a partire dalle sottostringhe.

La sintassi del metodo di Python join() è:

<sep>.join(<iterable>)

Qui,

  • <iterable> è un qualsiasi elemento iterabile di Python che contenga delle sottostringhe, ad esempio, una lista o una tupla, e
  • <sep> è il separatore che vorresti usare per unire le stringhe.
join()  <iterable>  <sep>

▶ Ed è il momento per gli esempi.

Esempi del Metodo join() di Python

Nella sezione precedente sul metodo split(), hai diviso my_string in una lista sulle occorrenze delle virgole. Chiamiamo la lista my_list.

Ora formerai una stringa usando il metodo join() per mettere insieme gli elementi nella lista restituita. Gli elementi in my_list sono tutti nomi di frutti.

my_list = my_string.split(",")

# dopo che my_string è stata divisa my_list è:
['Apples', 'Oranges', 'Pears', 'Bananas', 'Berries']

📑 Nota che il separatore per unire deve essere specificato come stringa. Incorrerai in errori di sintassi se non lo fai, come mostrato in basso.

,.join(my_list)
image-49

▶ Per unire gli elementi in my_list usando una virgola come separatore, usa "," non ,. Questo viene mostrato nella porzione di codice qui in basso.

", ".join(my_list)

La riga di codice in alto unisce gli elementi in my_list usando una virgola seguita da uno spazio come separatore.

image-53

Puoi specificare un qualunque separatore a tua scelta. Questa volta, userai 3 trattini bassi (___) per unire gli elementi in my_list.

"___".join(my_list)
image-54

Gli elementi in my_list adesso sono stati uniti in una sola stringa, e sono separati l'uno dall'altro da ___.

E adesso sai come formare una stringa di Python mettendo insieme delle sottostringhe usando il metodo join().

Conclusione

In questo tutorial, hai imparato che:

  • <string>.split(sep, maxsplit) divide <string> sulle occorrenze di sep, un numero di volte uguale a maxsplit,
  • <sep>.join(<iterable>) unisce le sottostringhe in <iterable> usando <sep> come separatore.

Spero che tu abbia trovato utile questo tutorial. Buona programmazione!