1 usuario conectado

Encontrar palabras con prefijo. Ejercicio en Python

Comparte esto

 

Escribe una función en Python llamada encontrar_palabras_con_prefijo que tome una cadena de texto y un prefijo como entrada. La función debe devolver una lista de todas las palabras en el texto que comienzan con el prefijo dado (ignorando las mayúsculas y minúsculas).



Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Encontrar palabras con prefijo

📋 Copiar código



import re

def encontrar_palabras_con_prefijo(texto, prefijo):
  """
  Encuentra todas las palabras en un texto que comienzan con un prefijo dado
  (ignorando mayúsculas y minúsculas).

  Args:
    texto: La cadena de texto en la que se buscarán las palabras.
    prefijo: El prefijo con el que deben comenzar las palabras.

  Returns:
    Una lista de palabras del texto que comienzan con el prefijo dado.
  """
  prefijo_lower = prefijo.lower()
  palabras = re.findall(r'\b\w+\b', texto.lower())
  palabras_con_prefijo = [palabra for palabra in palabras if palabra.startswith(prefijo_lower)]
  return palabras_con_prefijo

# Ejemplos de uso
texto1 = "El perro pequeño persigue a otro perro perezoso."
prefijo1 = "perro"
resultado1 = encontrar_palabras_con_prefijo(texto1, prefijo1)
print(f"Palabras en '{texto1}' que comienzan con '{prefijo1}': {resultado1}")

texto2 = "La Casa Blanca es grande. Otra casa también."
prefijo2 = "casa"
resultado2 = encontrar_palabras_con_prefijo(texto2, prefijo2)
print(f"Palabras en '{texto2}' que comienzan con '{prefijo2}': {resultado2}")

texto3 = "Python es poderoso. Aprender Python es genial."
prefijo3 = "py"
resultado3 = encontrar_palabras_con_prefijo(texto3, prefijo3)
print(f"Palabras en '{texto3}' que comienzan con '{prefijo3}': {resultado3}")

texto4 = "Sin coincidencias aquí."
prefijo4 = "xyz"
resultado4 = encontrar_palabras_con_prefijo(texto4, prefijo4)
print(f"Palabras en '{texto4}' que comienzan con '{prefijo4}': {resultado4}")

texto5 = ""
prefijo5 = "algo"
resultado5 = encontrar_palabras_con_prefijo(texto5, prefijo5)
print(f"Palabras en '{texto5}' que comienzan con '{prefijo5}': {resultado5}")


 

Explicación del Código:

  1. Importación del módulo re:

    • Se importa el módulo re para utilizar expresiones regulares en la extracción de palabras del texto.
  2. Definición de la función encontrar_palabras_con_prefijo(texto, prefijo):

    • Se define una función llamada encontrar_palabras_con_prefijo que toma dos argumentos:
      • texto: La cadena de texto en la que se buscarán las palabras.
      • prefijo: La cadena que se utilizará como prefijo para la búsqueda.
  3. Convertir el prefijo a minúsculas:

    • prefijo_lower = prefijo.lower(): El prefijo se convierte a minúsculas para realizar una comparación que no distinga entre mayúsculas y minúsculas.
  4. Encontrar todas las palabras en el texto (en minúsculas):

    • palabras = re.findall(r'\b\w+\b', texto.lower()): Se utiliza re.findall() para encontrar todas las palabras en el texto, convirtiéndolo previamente a minúsculas con .lower(). La expresión regular r'\b\w+\b' busca secuencias de caracteres alfanuméricos (\w+) que estén delimitadas por límites de palabra (\b).
  5. Filtrar las palabras que comienzan con el prefijo:

    • palabras_con_prefijo = [palabra for palabra in palabras if palabra.startswith(prefijo_lower)]: Se utiliza una comprensión de lista para crear una nueva lista llamada palabras_con_prefijo. Para cada palabra en la lista palabras, se verifica si comienza con el prefijo_lower utilizando el método de cadena startswith(). Si la condición es verdadera, la palabra se incluye en la nueva lista.
  6. Retorno de la lista de palabras con el prefijo:

    • La función devuelve la lista palabras_con_prefijo, que contiene todas las palabras del texto que comienzan con el prefijo especificado (ignorando la capitalización).
  7. Ejemplos de uso:

    • Se proporcionan varios ejemplos de cómo utilizar la función con diferentes textos y prefijos, incluyendo casos con coincidencias en diferentes capitalizaciones y casos sin coincidencias.
    • Para cada ejemplo, se imprime la lista de palabras encontradas que comienzan con el prefijo dado.