Python: come ottenere il reverse di una stringa

di Lorenzo Neri
132 visualizzazioni

Stai cercando di “specchiare” una stringa quindi ottenere il suo reverse? Sì, si può fare in Python: ti spiego come in questo articolo!

Se stai cercando un metodo, una funzione, magari anche un metodo “built-in” a livello di classe, un qualcosa che ti permetta di “specchiare” o ribaltare una stringa, quindi come si direbbe in inglese… Reverse string in Python ecco… Non puoi.

Ciao mi chiamo Lorenzo Neri e sono un informatico: realizzo contenuti per aiutare le persone a padroneggiare l’arte del nuovo millennio, ovvero l’informatica!

Dicevo, scusa: non è che non puoi. Non esiste niente di diretto purtroppo.

La classe str non lo prevede: per quello prima parlavo di metodo “built-in”. Però resta la domanda principale per cui sei qui.

In sintesi: come ottenere il reverse di una stringa in Python

Presto detto, presto fatto:

stringa = "Ciao, sono una stringa"
reversed = stringa[::-1]

Se utilizzi la sintassi che ti ho mostrato qua sopra, otterrai ciò che vorrai:

>>> stringa
'Ciao, sono una stringa'
>>> reversed
'agnirts anu onos ,oaiC'

La stringa ribaltata la otteniamo eccome, abbiamo fatto un’operazione possibile grazie a ciò che è la sintassi “slice extended”: te la spiego.

La soluzione per “reversare” una stringa in Python

La sintassi “slice extended”, di cui ti lascio tutti i dettagli qui, si compone così:

elemento[inizio:fine:passo]

Se guardi bene, non abbiamo impostato un inizio, non abbiamo impostato una fine, ma abbiamo impostato un passo negativo.

Nel dettaglio per ottenere il reverse di una stringa, tramite la slice extended syntax, stiamo dicendo a Python:

Ascolta, prendimi la stringa dalla fine all’inizio, un carattere per volta ma procedi in senso inverso.

Per questo il passo negativo, per questo non abbiamo impostato la fine e l’inizio: così facendo Python procederà dalla fine all’inizio anziché il contrario.

Usiamo la join per ottenere il reverse

Esiste un metodo “built-in”, ma non è direttamente pensato per risovlere il nostro problema.

Il metodo “join” fa parte dei metodi built-in:

Infatti dovresti fare così:

def reversed(stringa):
   return stringa[::-1]
invertita = ''.join(reversed("Ciao sono una stringa"))

Non cambia molto vero? Meglio usare la prima di soluzione, risparmiamo anche la dichiarazione di una funzione.

Continua a scoprire di più con questi articoli!

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più