Nel lin­guag­gio di pro­gram­ma­zio­ne Python sono previsti diversi modi per creare sot­to­strin­ghe o ve­ri­fi­car­ne la presenza all’interno di una stringa.

Cos’è una sot­to­strin­ga?

So­stan­zial­men­te una stringa non è nient’altro che una parte di una stringa Python. Si tratta di sequenze di caratteri di qualsiasi grandezza. Se vi interessa solo una parte di una stringa e la estraete, ottenete una sot­to­strin­ga. Un esempio semplice è la stringa “Hello World!”, che può essere divisa nelle due sot­to­strin­ghe “Hello” e “World!”. Tenete presente che le sot­to­strin­ghe non sono ne­ces­sa­ria­men­te singole parole. Anche ogni lettera e ogni carattere di una stringa, con­si­de­ra­ti da soli, co­sti­tui­sco­no una sot­to­strin­ga.

Consiglio

Se siete in­te­res­sa­ti alla pro­gram­ma­zio­ne in Python per via di un progetto web, vale la pena di dare uno sguardo a Deploy Now di IONOS. Grazie a un flusso di lavoro au­to­ma­tiz­za­to di GitHub, potete di­stri­bui­re e compilare i vostri progetti web molto fa­cil­men­te.

Creare una sot­to­strin­ga Python

Slicing

La fun­zio­na­li­tà di Python si­cu­ra­men­te più nota per creare una sot­to­strin­ga è lo slicing (dall’inglese: “affettare”), che in base agli indici vi permette di de­ter­mi­na­re dove la vostra sot­to­strin­ga deve iniziare e dove deve finire. Passate gli indici tra parentesi quadre, separati da due punti. L’indice di inizio è inclusivo, ma quello di fine è esclusivo. La sintassi dello slicing in Python si presenta dunque come segue:

string[start:end]
python

Un esempio concreto di codice aiuta a com­pren­de­re lo slicing:

s = "Python è un linguaggio amato."
risultato = s[0:6]
python

In­nan­zi­tut­to si crea una stringa chiamata “s”. Nella seconda riga dell’esempio di codice vedete lo slicing. Dopo il nome della stringa si indica tra parentesi quadre prima l’indice di inizio 0, seguito da due punti, poi l’indice di fine 6. Ne consegue che nella variabile chiamata “risultato” viene salvata la sot­to­strin­ga di “s”, che è co­sti­tui­ta dai caratteri dalla posizione zero alla cinque (inclusa). Nel nostro caso, la variabile “risultato” conteneva la parola “Python”.

Se volete “affettare” una stringa a partire dall’inizio o fino alla fine, potete ac­cor­cia­re ul­te­rior­men­te il codice: se non spe­ci­fi­ca­te un indice di inizio, per im­po­sta­zio­ne pre­de­fi­ni­ta viene sem­pli­ce­men­te se­le­zio­na­to l’indice 0. Se invece omettete l’indice di fine, con lo slicing create una sot­to­strin­ga Python che arriva fino alla fine della stringa ori­gi­na­ria.

Anche se volete iniziare a estrarre sot­to­strin­ghe dalla vostra stringa Python originale dalla fine, potete usare una forma ab­bre­via­ta con indici negativi:

s = "Python è un linguaggio amato."
risultato = s[-6:]
python

Nell’esempio di codice sopra, la variabile chiamata “risultato” contiene gli ultimi 6 caratteri della stringa originale “s”. Nella variabile “risultato” vi è quindi la stringa “amato.”.

Metodi per le stringhe

Oltre allo slicing, in Python sono previsti svariati metodi per le stringhe pre­de­fi­ni­ti a cui potete ricorrere per estrarre una sot­to­strin­ga da una stringa.

La funzione slice

Come già si intuisce dal nome, la funzione slice è equi­va­len­te allo slicing in Python. Anche la sua sintassi ricorda for­te­men­te quella dello slicing che abbiamo appena visto. Riceve un indice di inizio e di fine e re­sti­tui­sce la relativa sot­to­strin­ga:

string.slice(start, end)
python

La funzione substring

Anche il metodo substring è perfetto per estrarre sot­to­strin­ghe in Python. Sin­tat­ti­ca­men­te appare simile alla funzione slice. Anche il com­por­ta­men­to è equi­va­len­te:

string.substring(start, end)
python

La funzione split

Se non siete in­te­res­sa­ti o in­te­res­sa­te soltanto a una, ma a più sot­to­strin­ghe, con­si­de­ra­te lo split in Python. Questa funzione vi permette di sud­di­vi­de­re una stringa, in base al se­pa­ra­to­re passato, in una lista Python di sot­to­strin­ghe. La sintassi non è com­pli­ca­ta:

string.split(separatore)
python

Per il­lu­stra­re come agisce esat­ta­men­te la funzione split, ri­cor­ria­mo di nuovo a un breve esempio di codice:

s = "Python è un linguaggio amato."
risultato = s.split(" ")
python

Chiamando la funzione split in Python si riceve come argomento il se­pa­ra­to­re, nel nostro caso uno spazio. Nella variabile “risultato” è ora salvata una lista di tutte le sot­to­strin­ghe Python che nella stringa ori­gi­na­ria erano separate da uno spazio: “[‘Python’, ‘è’, ‘un’, ‘lin­guag­gio’, ‘amato.’]”

Sot­to­strin­ghe come risultato delle espres­sio­ni regolari

Potete inoltre salvare sot­to­strin­ghe Python in una lista uti­liz­zan­do prima un’espres­sio­ne regolare su una stringa e poi la funzione findall della libreria “re”. Le espres­sio­ni regolari in Python sono un formato per l’ela­bo­ra­zio­ne delle stringhe che trova de­ter­mi­na­ti modelli all’interno delle stringhe. La funzione findall riceve come primo parametro di tra­sfe­ri­men­to un’espres­sio­ne regolare e come secondo parametro una stringa. Un esempio di codice aiuta a com­pren­de­re la procedura:

import re
s = "Python è un linguaggio amato."
risultato = re.findall(r"\w+", s)
python

Nella prima riga di codice viene importata la libreria “re”, per poi dare accesso alla funzione findall. Suc­ces­si­va­men­te viene passata all’espres­sio­ne regolare “r“\w+“” e alla stringa già nota nella variabile chiamata “s”. A prima vista l’espres­sio­ne regolare può sembrare un po’ strana, ma non indica nient’altro che da una stringa devono essere estratte tutte le parole. Non sorprende quindi che nella variabile chiamata “risultato” si trovi di nuovo una lista di sot­to­strin­ghe Python: “[‘Python’, ‘è’, ‘un’, ‘lin­guag­gio’, ‘amato’]”.

Vai al menu prin­ci­pa­le