Come invertire una stringa in Python

Scopri come invertire una stringa in Python utilizzando l'affettatura, la funzione reversed() e la concatenazione di loop con esempi di codice visivo.

Prova questa soluzione nell'editor

Panoramica

La manipolazione delle stringhe è una funzionalità fondamentale nell'elaborazione del testo, nell'analisi e nella risoluzione algoritmica dei problemi. Invertire una stringa è un esercizio classico che mostra la flessibilità delle strutture dati di Python. Poiché le stringhe in Python sono immutabili (nel senso che non possono essere modificate dopo la creazione), l'inversione di una stringa restituisce sempre una nuova stringa.

Il modo più comune, idiomatico e veloce per invertire una stringa in Python è usare la notazione slice: `my_string[::-1]`. La sintassi della sezione accetta tre parametri "[start:stop:step]". Omettendo `start` e `stop` e impostando `step` su `-1`, dici a Python di scorrere la stringa all'indietro dalla fine all'inizio. Sotto il cofano, questa operazione di slicing è implementata in codice C ottimizzato, rendendola eccezionalmente veloce.

In alternativa, puoi utilizzare la funzione incorporata `reversed()`, che restituisce un iteratore che restituisce i caratteri in ordine inverso. Per riconvertire questo iteratore in una stringa, uniscili usando `"".join(reversed(text))`. Questo metodo è altamente leggibile e funziona bene se si desidera eseguire il loop direttamente sui caratteri invertiti senza prima creare una nuova stringa.

Codice e output di esecuzione

Questo script dimostra l'inversione di una stringa utilizzando l'affettatura, l'unione + inversione e un'implementazione del ciclo manuale.

reverse_string.py
Prova nell'editor
text = "PyRun"

# Method 1: Slicing (Fastest & most common)
reversed_slice = text[::-1]
print("Slicing:", reversed_slice)

# Method 2: reversed() and join() (Very readable)
reversed_join = "".join(reversed(text))
print("Reversed join:", reversed_join)

# Method 3: Loop (Useful for demonstrating logic)
reversed_loop = ""
for char in text:
    reversed_loop = char + reversed_loop
print("Loop method:", reversed_loop)
Uscita terminale
Slicing: nuRyP
Reversed join: nuRyP
Loop method: nuRyP

Implementazione passo dopo passo

  • Usa la notazione slice [::-1] per il modo più veloce e pitonico di invertire una stringa.
  • Utilizzare "".join(reversed(text)) per invertire una stringa utilizzando un approccio basato su iteratori.
  • Ricorda sempre che l'inversione di una stringa crea un nuovo oggetto stringa in memoria.

Domande frequenti

Il taglio delle stringhe è il modo più veloce per invertire una stringa?

Sì, la notazione delle sezioni è implementata in C e viene eseguita molto più velocemente dei cicli o delle espressioni del generatore.

Perché non posso invertire una stringa sul posto?

Le stringhe in Python sono immutabili, il che significa che i loro caratteri non possono essere modificati sul posto. È necessario costruire una nuova stringa.

Argomenti correlati

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.