1 usuario conectado

Autocompletar. Ejercicio en Python

Comparte esto

 
Escribe una función en Python llamada autocompletar que tome un prefijo (una cadena) y una lista de palabras como entrada. La función debe devolver una lista de todas las palabras en la lista que comienzan con el prefijo dado (ignorando la capitalización).

.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Autocompletar

📋 Copiar código


def autocompletar(prefijo, palabras):
  """
  Simula la funcionalidad de autocompletar basándose en un prefijo.

  Args:
    prefijo: El prefijo de búsqueda (cadena).
    palabras: Una lista de palabras posibles.

  Returns:
    Una lista de palabras que comienzan con el prefijo (ignorando capitalización).
  """
  sugerencias = []
  prefijo_lower = prefijo.lower()
  for palabra in palabras:
    palabra_lower = palabra.lower()
    if palabra_lower.startswith(prefijo_lower):
      sugerencias.append(palabra)
  return sugerencias

# Ejemplos de uso
lista_palabras = ["Hola", "Mundo", "Helado", "Hamaca", "Hombre", "Mapa"]

prefijo1 = "Ho"
sugerencias1 = autocompletar(prefijo1, lista_palabras)
print(f"Sugerencias para '{prefijo1}': {sugerencias1}")

prefijo2 = "m"
sugerencias2 = autocompletar(prefijo2, lista_palabras)
print(f"Sugerencias para '{prefijo2}': {sugerencias2}")

prefijo3 = "Hel"
sugerencias3 = autocompletar(prefijo3, lista_palabras)
print(f"Sugerencias para '{prefijo3}': {sugerencias3}")

prefijo4 = "Z"
sugerencias4 = autocompletar(prefijo4, lista_palabras)
print(f"Sugerencias para '{prefijo4}': {sugerencias4}")

prefijo5 = ""
sugerencias5 = autocompletar(prefijo5, lista_palabras)
print(f"Sugerencias para '{prefijo5}': {sugerencias5}")


Explicación del Código:

  1. def autocompletar(prefijo, palabras)::

    • Define una función llamada autocompletar que toma un prefijo (la cadena de búsqueda) y una lista de palabras como entrada.
  2. sugerencias = []:

    • Inicializa una lista vacía llamada sugerencias para almacenar las palabras que coinciden con el prefijo.
  3. prefijo_lower = prefijo.lower():

    • Convierte el prefijo a minúsculas para realizar una comparación sin distinción de mayúsculas y minúsculas.
  4. for palabra in palabras::

    • Itera a través de cada palabra en la lista de palabras.
  5. palabra_lower = palabra.lower():

    • Convierte la palabra actual a minúsculas para la comparación.
  6. if palabra_lower.startswith(prefijo_lower)::

    • Utiliza el método de cadena startswith() para verificar si la palabra (en minúsculas) comienza con el prefijo (en minúsculas).
  7. sugerencias.append(palabra):

    • Si la palabra comienza con el prefijo, se añade la palabra original (con su capitalización original) a la lista de sugerencias.
  8. return sugerencias:

    • Después de revisar todas las palabras en la lista, la función devuelve la lista de sugerencias.

 

Ejemplos de Uso:

Los ejemplos muestran cómo la función encuentra las palabras en la lista que comienzan con los prefijos dados, ignorando la capitalización.