Trabajar con cadenas de texto en Python es una de las tareas que más nos toca hacer como programadores. Entre esos procesos que podemos llevar a cabo para trabajar con cadenas es usar la función str.replace(), esta es muy útil en diferentes contextos, veamos qué es, cómo funciona y cuáles son esos contextos.
¿Qué es str.replace() en Python?
La función str.replace() en Python permite reemplazar una subcadena dentro de una cadena de texto. Este método no modifica la cadena original (ya que las cadenas son inmutables en Python), sino que devuelve una nueva cadena con las modificaciones realizadas. Es una de las formas más fáciles y rápidas de hacer reemplazos simples dentro de un texto.
La sintaxis de str.replace() es así:
string.replace(old, new, count)
En donde:
- old: Especifica la subcadena que deseas reemplazar.
- new: Especifica el texto con el cual reemplazarás la subcadena antigua.
- count (opcional): Limita el número de reemplazos que deseas realizar. Si no se especifica, se reemplazarán todas las ocurrencias.
Como siempre, para entender mejor, pongámonos en contexto de ejemplos aplicativos: Supongamos que tenemos una cadena y queremos reemplazar una palabra en particular:
txt = "Me gustan las manzanas"
x = txt.replace("manzanas", "peras")
print(x)
La salida sería así:
Me gustan las peras
🔴 ¿Quieres Aprender a Programar con Python? 🔴
Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semanaEn este ejemplo, str.replace() reemplaza la palabra “manzanas” por “peras”. Como puedes ver, esta operación no cambia el valor de la variable txt, sino que crea una nueva cadena con los cambios.
¿Cómo funciona str.replace() con el parámetro count?
El parámetro count te permite especificar cuántas veces quieres que se haga el reemplazo. Si no lo usas, se reemplazarán todas las ocurrencias de la subcadena:
txt = "apple, apple, apple"
x = txt.replace("apple", "orange", 2)
print(x)
El resultado se ve así:
orange, orange, apple
En este caso solo se reemplazan las dos primeras ocurrencias de “apple”, ya que hemos indicado que count es 2.
¿Es str.replace() sensible a mayúsculas?
Sí, por defecto, str.replace() distingue entre mayúsculas y minúsculas. Si deseas hacer un reemplazo sin importar si las letras están en mayúsculas o minúsculas, deberás usar un enfoque diferente, como transformar la cadena a minúsculas (o mayúsculas) antes de hacer el reemplazo:
txt = "Python es GENIAL"
x = txt.replace("genial", "increíble")
print(x)
La salida:
Python es GENIAL
Como puedes ver, no se realizó ningún reemplazo porque “GENIAL” no coincidió exactamente con “genial”. Si deseas realizar un reemplazo insensible a las mayúsculas, puedes hacerlo de la siguiente manera:
txt = "Python es GENIAL"
x = txt.lower().replace("genial", "increíble")
print(x)
Debería quedar así:
python es increíble
¿Cómo usar Series.str.replace() en pandas?
Si trabajas con pandas, puedes usar Series.str.replace() para realizar reemplazos en columnas de texto dentro de un DataFrame. Este método funciona de manera similar a str.replace(), pero permite el uso de expresiones regulares (regex):
import pandas as pd
import numpy as np
df = pd.Series(['apple', 'banana', 'apple pie'])
df_replaced = df.str.replace('apple', 'orange')
print(df_replaced)
Salida:
0 orange
1 banana
2 orange pie
dtype: object
Aquí str.replace() reemplaza todas las ocurrencias de “apple” por “orange” en cada uno de los elementos de la serie.
Únete a la mejor comunidad tecnológica y sigue aprendiendo gracias al bootcamp en programación inicial que Keepcoding tiene para ti. En él podrás entender cómo funciona el código y aplicarlo en la vida real para optimizar tu proceso de aprendizaje y que puedas conseguir tu primer empleo tech de manera fácil y rápida. ¡Acceder ahora a la mejor formación!