1 usuario conectado

Reemplazar múltiples palabras. Ejercicio en Python

Comparte esto

 

Escribe una función en Python llamada reemplazar_multiples_palabras que tome una cadena de texto y un diccionario de reemplazo (donde las claves son las palabras a buscar y los valores son las palabras de reemplazo) como entrada. La función debe devolver una nueva cadena donde todas las ocurrencias de las palabras clave (ignorando mayúsculas y minúsculas) se han reemplazado por sus correspondientes valores del diccionario.



Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Reemplazar múltiples palabras

📋 Copiar código

import re

def contiene_solo_letras_es(texto):
  """
  Valida si una cadena de texto contiene solo letras del alfabeto español y espacios.
import re

def reemplazar_multiples_palabras(texto, reemplazos):
  """
  Reemplaza múltiples palabras en un texto (ignorando mayúsculas/minúsculas)
  utilizando un diccionario de reemplazo.

  Args:
    texto: La cadena de texto de entrada.
    reemplazos: Un diccionario donde las claves son las palabras a buscar
                (en minúsculas) y los valores son las palabras de reemplazo.

  Returns:
    Una nueva cadena con las palabras reemplazadas.
  """
  texto_modificado = texto
  for buscar, reemplazar in reemplazos.items():
    patron = r"(?i)\b" + re.escape(buscar) + r"\b"
    texto_modificado = re.sub(patron, reemplazar, texto_modificado)
  return texto_modificado

# Ejemplos de uso
texto1 = "El perro ladra al gato. EL GATO huye."
reemplazos1 = {"perro": "can", "gato": "felino"}
resultado1 = reemplazar_multiples_palabras(texto1, reemplazos1)
print(f"'{texto1}' con reemplazos: '{resultado1}'")

texto2 = "La casa es grande, la CASA blanca."
reemplazos2 = {"casa": "vivienda", "blanca": "inmaculada"}
resultado2 = reemplazar_multiples_palabras(texto2, reemplazos2)
print(f"'{texto2}' con reemplazos: '{resultado2}'")

texto3 = "Un ejemplo de ejemplo."
reemplazos3 = {"ejemplo": "muestra"}
resultado3 = reemplazar_multiples_palabras(texto3, reemplazos3)
print(f"'{texto3}' con reemplazos: '{resultado3}'")

texto4 = "No hay palabras para reemplazar aquí."
reemplazos4 = {"algo": "nada"}
resultado4 = reemplazar_multiples_palabras(texto4, reemplazos4)
print(f"'{texto4}' con reemplazos: '{resultado4}'")

texto5 = ""
reemplazos5 = {"palabra": "otra"}
resultado5 = reemplazar_multiples_palabras(texto5, reemplazos5)
print(f"'' con reemplazos: '{resultado5}'")

texto6 = "El sol brilla en el cielo AZUL."
reemplazos6 = {"sol": "astro rey", "azul": "celeste"}
resultado6 = reemplazar_multiples_palabras(texto6, reemplazos6)
print(f"'{texto6}' con reemplazos: '{resultado6}'")


Explicación del Código:

  1. Importa el módulo re: Se utiliza para trabajar con expresiones regulares para realizar las sustituciones.

  2. Función reemplazar_multiples_palabras(texto, reemplazos):

    • Inicializa texto_modificado con el texto original.
    • Itera a través del diccionario reemplazos, donde cada buscar (clave) es la palabra a reemplazar (en minúsculas para la búsqueda insensible) y cada reemplazar (valor) es la palabra de reemplazo.
    • Para cada par buscar-reemplazar:
      • patron = r"(?i)\b" + re.escape(buscar) + r"\b": Crea un patrón de búsqueda de expresión regular:
        • (?i): Una bandera para que la búsqueda no distinga entre mayúsculas y minúsculas.
        • \b: Un límite de palabra para asegurar que solo se reemplacen las palabras completas.
        • re.escape(buscar): Escapa cualquier carácter especial que pueda haber en la palabra a buscar.
      • texto_modificado = re.sub(patron, reemplazar, texto_modificado): Realiza la sustitución de todas las ocurrencias de la palabra a buscar por la palabra de reemplazo en el texto_modificado.
    • Devuelve la cadena texto_modificado con todas las palabras reemplazadas.

Ejemplos de Uso:

Los ejemplos muestran cómo la función reemplaza múltiples palabras en diferentes textos utilizando un diccionario de mapeo. La búsqueda de las palabras clave no distingue entre mayúsculas y minúsculas, y se asegura de reemplazar solo palabras completas gracias a los límites de palabra (\b).