Rimuovi i numeri dalla stringa in Python

Muhammad Waiz Khan 30 gennaio 2023
  1. Rimuovi i numeri dalla stringa usando il metodo string.join() in Python
  2. Rimuovere i numeri dalla stringa in Python usando il metodo string.translate()
  3. Rimuovere i numeri dalla stringa in Python usando il metodo re.sub()
Rimuovi i numeri dalla stringa in Python

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