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:
-
Importación del módulo re
:
- Se importa el módulo
re
para
utilizar expresiones regulares en la extracción de palabras del texto.
-
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.
-
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.
-
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
).
-
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.
-
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).
-
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.