Reemplazo de cadenas en Python | Reemplazo de cadena de Python [2022]
Publicado: 2021-01-02Reemplazar 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.