Come sostituire i caratteri in una stringa in Python

Scopri come sostituire caratteri o sottostringhe nelle stringhe Python. Padroneggia il metodo replace(), i limiti di conteggio e l'utilizzo della traduzione per più caratteri.

Prova questa soluzione nell'editor

Panoramica

La manipolazione delle stringhe è al centro dell'analisi degli input, del rendering dei modelli, della pulizia dei dati e della generazione del testo di output. In Python, modificare caratteri specifici o sottostringhe all'interno di un blocco di testo è semplice, ma richiede la comprensione di una proprietà fondamentale delle stringhe: l'immutabilità.

Poiché le stringhe Python sono immutabili, non è possibile modificare i loro caratteri sul posto (ad esempio, scrivere `text[0] = "A"` solleva un `TypeError`). Qualsiasi operazione che altera una stringa deve invece creare e restituire una stringa nuova di zecca. Lo strumento principale per questo è il metodo integrato `.replace()`.

Il metodo `.replace(old, new)` cerca in una stringa tutte le occorrenze di una sottostringa specificata e le sostituisce con una nuova sottostringa. Puoi anche specificare un terzo argomento facoltativo "count", che limita il numero di sostituzioni da eseguire da sinistra a destra. Per sostituzioni più complesse e composte da più caratteri, puoi utilizzare il metodo `.translate()` o le espressioni regolari con la funzione `re.sub()`.

Codice e output di esecuzione

Questo script dimostra la modifica delle stringhe sostituendo sottostringhe e caratteri utilizzando il metodo replace().

replace_chars.py
Prova nell'editor
text = "banana apple banana cherry"

# 1. Replace all occurrences of a word
replaced_all = text.replace("banana", "orange")
print("Replaced all:", replaced_all)

# 2. Replace with a count limit (only first occurrence)
replaced_limit = text.replace("banana", "orange", 1)
print("Replaced limit:", replaced_limit)

# 3. Replace individual characters (immutability demonstration)
phrase = "pyth0n"
corrected = phrase.replace("0", "o")
print("Corrected string:", corrected)
Uscita terminale
Replaced all: orange apple orange cherry
Replaced limit: orange apple banana cherry
Corrected string: python

Implementazione passo dopo passo

  • Chiama il metodo .replace() sulla stringa di destinazione.
  • Passa la sottostringa di destinazione come primo argomento e la sostituzione come secondo.
  • Utilizza l'argomento count se desideri limitare il numero di sostituzioni.

Domande frequenti

Come posso sostituire i caratteri in una stringa sul posto?

Non puoi perché le stringhe Python sono immutabili. È necessario assegnare il risultato del metodo .replace() alla variabile stringa: text = text.replace(...).

replace() fa distinzione tra maiuscole e minuscole?

Sì, .replace() fa rigorosamente distinzione tra maiuscole e minuscole. Per eseguire sostituzioni senza distinzione tra maiuscole e minuscole, è necessario utilizzare le espressioni regolari con il modulo re e re.IGNORECASE.

Argomenti correlati

Risorse Python consigliate

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