Rimuovi i numeri dalla stringa in Python
-
Rimuovi i numeri dalla stringa usando il metodo
string.join()in Python -
Rimuovere i numeri dalla stringa in Python usando il metodo
string.translate() -
Rimuovere i numeri dalla stringa in Python usando il metodo
re.sub()
Questo tutorial esaminerà vari metodi per rimuovere i numeri o le cifre dalla stringa in Python. Di solito rimuoviamo i numeri dai dati nell’elaborazione del linguaggio naturale durante il processo di pulizia dei dati.
Supponiamo di avere una stringa abcd1234efg567 e di voler rimuovere le cifre dalla stringa per ottenere una stringa come abcdefg. Possiamo rimuovere i numeri dalla stringa in Python usando i seguenti metodi:
Rimuovi i numeri dalla stringa usando il metodo string.join() in Python
Il metodo string.join(iterable) accetta un oggetto iterabile iterable come input, unisce i suoi elementi insieme usando il valore della string come separatore e restituisce la stringa risultante come output.
Per rimuovere i numeri dalla stringa, prima itereremo attraverso la stringa e selezioneremo valori non numerici, li passeremo al metodo string.join() per unirli e ottenere la stringa risultante con caratteri non numerici come output.
Il codice di esempio sotto mostra come utilizzare il metodo string.join() per rimuovere i numeri dalla stringa in Python.
string = "abcd1234efg567"
newstring = "".join([i for i in string if not i.isdigit()])
print(newstring)
Produzione:
abcdefg
Rimuovere i numeri dalla stringa in Python usando il metodo string.translate()
Il metodo string.translate(map) in Python 2, prende una tabella di mappatura o un dizionario come input e restituisce la stringa dopo aver sostituito i caratteri specificati con i caratteri definiti nella tabella o nel dizionario di mappatura di input.
Il codice di esempio sotto mostra come utilizzare il metodo string.translate() per rimuovere i numeri dalla stringa in Python 2.
from string import digits
string = "abcd1234efg567"
newstring = string.translate(None, digits)
print(newstring)
Produzione:
abcdefg
In Python 3, la string.translate(table) prende la tabella di traduzione come input invece della tabella di mappatura o del dizionario, come in Python 2. Pertanto, dobbiamo usare il metodo str.maketrans() per ottenere un tabella di traduzione per usarlo come input per il metodo string.translate().
Il codice di esempio sotto mostra come utilizzare i metodi string.translate() e str.maketrans() per rimuovere i numeri dalla stringa in Python 3:
from string import digits
string = "abcd1234efg567"
table = str.maketrans("", "", digits)
newstring = string.translate(table)
print(newstring)
Produzione:
abcdefg
Rimuovere i numeri dalla stringa in Python usando il metodo re.sub()
Il re.sub(pattern, replace, string) prende la string come input e restituisce la stringa sostituendo le occorrenze non sovrapposte della stringa pattern (descritta come un’espressione regolare) con il valore replace nella stringa.
L’espressione regolare per le cifre è [0-9]+. Dobbiamo solo passare questo come argomento pattern e '' come replace per rimuovere i numeri dalla string di input usando il metodo re.sub().
Il codice di esempio seguente mostra come utilizzare il metodo re.sub() per rimuovere i numeri dalla stringa:
import re
string = "abcd1234efg567"
newstring = re.sub(r"[0-9]+", "", string)
print(newstring)
Produzione:
abcdefg
Articolo correlato - Python String
- Come controllare se una stringa è vuota in un modo pythonico
- Converti una stringa in nome variabile in Python
- Come rimuovere gli spazi bianchi in una stringa in Python
- Estrai numeri da una stringa in Python
- Come convertire una stringa in datario in Python
- Come convertire una stringa in minuscola in Python 2 e 3