Eliminar números de cadena en Python

Muhammad Waiz Khan 30 enero 2023
  1. Eliminar números de la cadena usando el método string.join() en Python
  2. Eliminar números de la cadena en Python usando el método string.translate()
  3. Eliminar números de la cadena en Python usando el método re.sub()
Eliminar números de cadena en Python

Este tutorial analizará varios métodos para eliminar los números o dígitos de la cadena en Python. Por lo general, eliminamos números de los datos en el procesamiento del lenguaje natural durante el proceso de limpieza de datos.

Supongamos que tenemos una cadena abcd1234efg567 y queremos eliminar los dígitos de la cadena para obtener una cadena como abcdefg. Podemos eliminar los números de la cadena en Python usando los siguientes métodos:

Eliminar números de la cadena usando el método string.join() en Python

El método string.join(iterable) toma un objeto iterable iterable como entrada, une sus elementos usando el valor de la string como separador y devuelve la cadena resultante como salida.

Para eliminar números de la cadena, primero iteraremos a través de la cadena y seleccionaremos valores que no sean dígitos, los pasaremos al método string.join() para unirlos y obtener la cadena resultante con caracteres que no sean dígitos como salida.

El siguiente código de ejemplo demuestra cómo utilizar el método string.join() para eliminar los números de la cadena en Python.

string = "abcd1234efg567"
newstring = "".join([i for i in string if not i.isdigit()])
print(newstring)

Producción :

abcdefg

Eliminar números de la cadena en Python usando el método string.translate()

El método string.translate(map) en Python 2, toma una tabla de mapeo o diccionario como entrada y devuelve la cadena después de reemplazar los caracteres especificados con los caracteres definidos en la tabla o diccionario de mapeo de entrada.

El siguiente código de ejemplo demuestra cómo utilizar el método string.translate() para eliminar los números de la cadena en Python 2.

from string import digits

string = "abcd1234efg567"
newstring = string.translate(None, digits)
print(newstring)

Producción :

abcdefg

En Python 3, el string.translate(table) toma la tabla de traducción como entrada en lugar de la tabla de mapeo o diccionario, como en Python 2. Por lo tanto, necesitamos usar el método str.maketrans() para obtener un tabla de traducción para usarla como entrada para el método string.translate().

El siguiente código de ejemplo demuestra cómo usar los métodos string.translate() y str.maketrans() para eliminar los números de la cadena en Python 3:

from string import digits

string = "abcd1234efg567"
table = str.maketrans("", "", digits)
newstring = string.translate(table)
print(newstring)

Producción :

abcdefg

Eliminar números de la cadena en Python usando el método re.sub()

El re.sub(pattern, replace, string) toma la string como entrada y devuelve la cadena reemplazando las ocurrencias no superpuestas de la cadena pattern (descrita como una expresión regular) con el valor de replace en la cuerda.

La expresión regular para dígitos es [0-9]+. Solo necesitamos pasar esto como el argumento pattern y '' como replace para eliminar los números de la string de entrada usando el método re.sub().

El siguiente código de ejemplo demuestra cómo utilizar el método re.sub() para eliminar números de la cadena:

import re

string = "abcd1234efg567"
newstring = re.sub(r"[0-9]+", "", string)
print(newstring)

Producción :

abcdefg

Artículo relacionado - Python String