En este artículo discutiremos cómo reemplazar uno o varios caracteres en una cadena en Python.
Python proporciona una función str.replace (), es decir,
str.replace(old, new , count)
Devuelve un nuevo objeto de cadena que es una copia de la cadena existente con reemplazado contenido. Además,
- Si no se proporciona el recuento, devolverá una cadena con todas las apariciones de ‘antiguo’, reemplazada por una cadena ‘nueva’.
- Si se pasa el parámetro de recuento, devuelve una cadena con las primeras apariciones de ‘cuenta’ de la cadena ‘antigua’ reemplazada por una cadena ‘nueva’.
Entendamos por ejemplos,
Reemplazar todas las apariciones de un carácter dado / cadena en una cadena
Supongamos que tenemos una cadena, es decir,
mainStr = "Hello, This is a sample string"
Ahora, reemplacemos todas las apariciones de ‘s ‘con’ X ‘es decir
"""Replace all occurrences of given character or string in main string"""otherStr = mainStr.replace("s" , "X")
El contenido de otherStr es el siguiente,
Hello, ThiX iX a Xample Xtring
Como Las cadenas son inmutables en Python, por lo que no podemos cambiar su contenido. Por lo tanto, las funciones miembro como replace () devuelven una nueva cadena.
Como no hemos proporcionado el parámetro count en la función replace (). Por lo tanto, reemplazará todas las apariciones de «s» con «X». Pero, ¿qué pasa si queremos reemplazar solo las primeras apariciones en lugar de todas? Veamos cómo hacer eso,
Reemplazar las primeras n apariciones de un carácter / subcadena en una cadena
Supongamos que tenemos una cadena, es decir,
mainStr = "Hello, This is a sample string"
Ahora, reemplacemos las 2 primeras apariciones de ‘s’ con ‘XXXS’, es decir,
"""Replace First 2 occurrences of given character or string in main string"""otherStr = mainStr.replace("s" , "XXXS", 2)
El contenido de otherStr es el siguiente,
Hello, ThiXXXS iXXXS a sample string
Como hemos pasado el parámetro count como 2, solo las 2 primeras apariciones de ‘s’ serán reemplazadas en la copia devuelta.
Reemplazar múltiples caracteres / cadenas en una cadena
La función str.replace () puede reemplazar las ocurrencias de una subcadena dada solamente. Pero, ¿qué pasa si queremos reemplazar varias subcadenas en una cadena determinada?
Supongamos que tenemos una cadena, es decir,
mainStr = "Hello, This is a sample string"
Ahora, ¿cómo reemplazar todas las apariciones de estos tres caracteres ‘s’, ‘l’, ‘a’ con esta cadena ‘AA’?
Vamos a crear una nueva función sobre replace () para hacer eso, es decir,
"""Replace a set of multiple sub strings with
read more