Reemplazo de cadenas en Python | Reemplazo de cadena de Python [2022]

Publicado: 2021-01-02

Reemplazar caracteres y cadenas en Python es una tarea crucial cuando se trata de limpieza de datos o procesamiento de texto. Sus datos pueden tener problemas de formato con caracteres basura que deben eliminarse, las categorías pueden tener problemas de ortografía, etc. Además, mientras se preprocesa el texto para problemas basados ​​en NLP, el reemplazo de cadenas es el paso más básico e importante al preparar los datos textuales.

En este tutorial, repasaremos varias formas de reemplazar diferentes tipos de cadenas. Si está interesado en ingresar a la ciencia de datos, consulte nuestras certificaciones de ciencia de datos. Al final de este tutorial, tendrá el conocimiento de lo siguiente:

  • Método Python replace()
  • Método Regex sub()
  • unir() y filtrar()
  • Sustitución de datos numéricos en cadenas

Tabla de contenido

Python reemplazar ()

El método replace(old_str, new_str, count) consta de 3 argumentos:

  • old_str: La cadena o una parte de la cadena que necesita ser reemplazada
  • new_str: la cadena con la que se debe reemplazar la cadena anterior
  • conteo: el conteo de veces que la cadena en particular necesita ser reemplazada

Repasemos algunos ejemplos para entender el funcionamiento.

Reemplazo único

Mystr = "Esta es una cadena de muestra"
Newstr = Mystr.replace( 'es' , 'era' )

#Producción:
Thwas era una cadena de muestra

Si recuerda, las cadenas en Python son inmutables. Entonces, cuando llamamos al método replace, esencialmente crea otro objeto de cadena con los datos modificados. Además, no especificamos el parámetro de conteo en el ejemplo anterior. Si no se especifica, el método de reemplazo reemplazará todas las apariciones de la cadena.

Reemplazo múltiple

Mystr = "Esta es una cadena de muestra"
Nuevacadena = Mystr.replace( “s” , “X” )

#Producción:
ThiX iX a Xample Xtring

Reemplazo múltiple primeras n ocurrencias

Si solo desea las primeras N ocurrencias,

Mystr = "Esta es una cadena de muestra"
Nuevacadena = Mystr.replace( “s” , “X” , 3 )

#Producción:
ThiX iX una cadena Xample

Reemplazo de cadenas múltiples

En los ejemplos anteriores, reemplazamos una cadena un número diferente de veces. Ahora, ¿qué sucede si desea reemplazar cadenas diferentes en la misma cadena grande? Podemos escribir una función efectiva para él y hacerlo usando el mismo método.

Considere el ejemplo anterior, pero ahora queremos reemplazar "h", "is" y "ng" con "X".

def MultipleStrings (mainStr, strReplaceList, newStr) :
# Iterando sobre las cadenas a ser reemplazadas
para elemento en strReplaceList :
# Comprobando si la cadena está en la cadena principal
si elemento en mainStr :
# Reemplazar la cadena
mainStr = mainStr.replace(elem, newStr)

volver cadena principal

Mystr = "Esta es una cadena de muestra"
Newstr = MultipleStrings(Mystr, [ 'h' , 'is' , 'ng' ] , “X” )

#Producción:
TXX X una muestra de striX

Leer: Tutorial de Python

Reemplazando con expresiones regulares

La expresión regular de Python es un módulo específicamente para manejar datos de texto, ya sea para encontrar subcadenas, reemplazar cadenas o cualquier cosa. Regex tiene la función sub() para buscar y reemplazar/sustituir subcadenas fácilmente. Repasemos su sintaxis y algunos casos de uso.

La función regex.sub(patrón, reemplazo, original_string) toma 3 argumentos:

  • patrón: la subcadena que debe coincidir y reemplazarse.
  • reemplazo: puede ser una cadena que debe colocarse o una función invocable que devuelve el valor que debe colocarse.
  • original_string: la cadena principal en la que se debe reemplazar la subcadena.

Al igual que el método de reemplazo, regex también crea otro objeto de cadena con la cadena modificada. Repasemos algunos ejemplos de trabajo.

Eliminando espacios en blanco

Los espacios en blanco pueden tratarse como caracteres especiales y reemplazarse con otros caracteres. En el siguiente ejemplo, tenemos la intención de reemplazar los espacios en blanco con "X".

importar re
Mystr = "Esta es una cadena de muestra"
# Reemplace todos los espacios en blanco en Mystr con 'X'
Novedades = re.sub( r”\s+” , 'X' , Mistr)

#Producción:
ThisXisXaXsampleXstring


Como vemos, todos los espacios en blanco fueron reemplazados. El patrón viene dado por r”\s+” que significa todos los caracteres de espacio en blanco.

Eliminar todos los caracteres especiales

Para eliminar todos los caracteres especiales, pasaremos un patrón que coincida con todos los caracteres especiales.

importar re
cadena de importación
Mistr = “Tempo@@&[(000)]%%$@@66isit$$#$%-+Str”
patrón = r'[' + cadena.puntuación + ']'
# Reemplazar todos los caracteres especiales en una cadena con X
Newstr = re.sub(patrón, 'X' , Mystr)

#Producción:
TempoXXXXX000XXXXXX66isitXXXXXXXXStr

Eliminar subcadena como insensible a mayúsculas y minúsculas

En datos de la vida real, puede haber casos en los que puede haber muchas versiones de la misma palabra con diferentes caracteres en mayúsculas y minúsculas. Para eliminarlos todos, poner todas las palabras por separado ya que el patrón no sería efectivo. La función regex sub() toma el indicador re.IGNORECASE para ignorar los casos. Vamos a ver cómo funciona.

importar re
Mystr = "Esta ES una Istring de muestra"
# Reemplazar subcadena en una cadena con un enfoque que no distingue entre mayúsculas y minúsculas
Newstr = re.sub( r'is' , '**' , Mystr, flags=re.IGNORECASE)

#Producción:
Th** ** una muestra **tring

Eliminar varios caracteres usando expresiones regulares

La función regex puede eliminar fácilmente varios caracteres de una cadena. A continuación se muestra un ejemplo.

importar re
Mystr = "Esta es una cadena de muestra"
patrón = r'[hsa]'
# Eliminar los caracteres 'h', 's' y 'a' de una cadena
Novedades = re.sub(patrón, , Mistr)

#Producción:
Ti i mple tring

Reemplazando usando join()

Otra forma de eliminar o reemplazar caracteres es iterar a través de la cadena y compararlos con alguna condición.

listacaracteres = [ 'h' , 's' , 'a' ]
Mystr = "Esta es una cadena de muestra"
# Eliminar todos los caracteres de la lista, de la cadena
Newstr = .join((elemento para elemento en Mystr si el elemento no está en charList ))

#Producción:
Ti i mple tring

Reemplazando usando join() y filter()

El ejemplo anterior también se puede hacer usando la función de filtro.

Mystr = "Esta es una cadena de muestra"
listacaracteres = [ 'h' , 's' , 'a' ]
# Eliminar todos los caracteres de la lista, de la cadena
Newstr = "" .join (filtro ( lambda k: k no en charList, Mystr))

#Producción:
Ti i mple tratando

Debe leer: Fascinantes aplicaciones de Python en el mundo real

Reemplazo de números

Muchas veces, los datos numéricos también están presentes en las cadenas que es posible que deban eliminarse y procesarse por separado como una característica diferente. Repasemos algunos ejemplos para ver cómo se pueden implementar.

Usando expresiones regulares

Considere la siguiente cadena de la que necesitamos eliminar los datos numéricos.

Mystr = "Cadena de muestra9211 del año 20xx"
patrón = r'[0-9]'
# Haga coincidir todos los dígitos en la cadena y reemplácelos por una cadena vacía
Noticia = re.sub(patrón, “” , Mistr)

#Producción:
Cadena de muestra del año xx

En el código anterior, usamos el patrón coincidente r'[0-9]' para hacer coincidir todos los dígitos.

Usando la función unir ()

También podemos iterar sobre la cadena y filtrar los dígitos usando el método isdigit() que devuelve Falso para los alfabetos.

Mystr = "Cadena de muestra9211 del año 20xx"
# Itera sobre los caracteres en la cadena y une todos los caracteres excepto los dígitos
Newstr = “” .join((elemento por elemento en Mystr si no es elemento.isdigit()))

#Producción:
Cadena de muestra del año xx

Usando join() y filter()

De manera similar, también podemos poner la condición de filtrado en la función de filtro para devolver solo los caracteres que devuelven True .

Mystr = "Cadena de muestra9211 del año 20xx"

# Filtra todos los dígitos de los caracteres en la cadena y une los caracteres restantes
Newstr = “” .join(filtro( elemento lambda : no elemento.isdigit(), Mystr))

#Producción:
Cadena de muestra del año xx

Antes de que te vayas

Cubrimos muchos ejemplos que muestran diferentes formas de eliminar o reemplazar caracteres/espacios en blanco/números de una cadena. Le recomendamos encarecidamente que pruebe más ejemplos y diferentes formas de hacer los ejemplos anteriores y también más ejemplos propios.

Si tiene curiosidad por aprender sobre python, ciencia de datos, consulte el Programa PG ejecutivo en ciencia de datos de IIIT-B y upGrad, que se creó para profesionales que trabajan y ofrece más de 10 estudios de casos y proyectos, talleres prácticos prácticos, tutoría con expertos de la industria. , 1 a 1 con mentores de la industria, más de 400 horas de aprendizaje y asistencia laboral con las mejores empresas.

¿Cuál es la necesidad del método de reemplazo de cadenas en Python?

Esta función se vuelve muy útil cuando se le aplican técnicas de limpieza de datos. Los caracteres innecesarios o basura se pueden eliminar fácilmente con esta función. El reemplazo de cadenas o caracteres no solo se usa en la limpieza de datos, sino también en los problemas de procesamiento de NLP.
Tener este tipo de métodos para manejar cadenas es importante ya que todo el campo de la ciencia de datos maneja grandes cantidades de datos.

¿Cuáles son las ventajas de usar tipos de datos de cadena?

Las cadenas son útiles ya que puede almacenar grandes cantidades de datos con facilidad utilizando este tipo de datos. Python admite una buena cantidad de métodos útiles para realizar operaciones en cadenas. Además, las cadenas son mutables en Python, lo que reduce la generación de errores y también son menos costosas.
La cadena es uno de los tipos de datos incorporados más utilizados en Python. No solo en python, sino que muchos otros lenguajes también admiten esto como un tipo de datos predefinido y admiten varios métodos para operar con ellos.