Ejercicios de Python para principiantes

Check Anagrams in Python

"listen" and "silent" use the same letters. Normalize both words, sort the letters and compare.

  • Principiante
  • 2 min de lectura
  • 1 ejemplo ejecutable
Lo que aprenderás
  • Normalizing case and spaces
  • Comparing sorted letters
  • Using collections.Counter instead
sorted letters
"listen"
e i l n s t
    "silent"
    e i l n s t
      result
      • equal → anagrams

      Same letters, different order

      Dos cadenas son anagramas cuando contienen exactamente las mismas letras, solo que en otro orden, como "listen" y "silent". Para comprobarlo de forma sencilla, se normalizan las dos cadenas y se ordenan sus letras. Si los resultados son iguales, son anagramas.

      Puntos clave

      1. Lowercase both texts and remove spaces.
      2. sorted("listen") and sorted("silent") give the same list.
      3. Counter(a) == Counter(b) works too and is O(n).

      ¿Cuándo se usa?

      • Aprender la sintaxis y los conceptos básicos de Python con ejemplos cortos y fáciles de entender.
      • Construir una base sólida antes de pasar a problemas más complejos.
      • Ejecutar el código directamente en el navegador, sin instalar Python en el ordenador.

      Código de ejemplo

      Ejecutar código →
      main.py
      def normalize(text):
          # Ignore spaces, punctuation, and letter case.
          return sorted(character.lower() for character in text if character.isalpha())
      
      first, second = "listen", "silent"
      result = "are" if normalize(first) == normalize(second) else "are not"
      print(f"{first} and {second} {result} anagrams")
      Obtén un botón Run para este ejemplo

      Resultado de la ejecución

      listen and silent are anagrams

      Explicación del código

      La función normalize() solo conserva las letras (comprobadas con isalpha()), las pasa a minúsculas y las ordena. Así, los espacios, la puntuación y las mayúsculas no influyen en el resultado. Como las listas de letras ordenadas de "listen" y "silent" son iguales, el programa concluye que son anagramas.

      Cambia los valores y ejecuta el programa en el compilador Python online de CodeUtility sin instalar Python.

      Ejercicios de práctica

      Prueba a modificar el código siguiendo las ideas de abajo. Cambiar el código y ver el resultado te ayudará a entender la lección mucho mejor que solo leerla.

      1. Cambia los datos de entrada y predice el resultado antes de ejecutar.
      2. Añade una comprobación para datos vacíos o no válidos.
      3. Pasa el proceso a una función aparte y pruébala con varios conjuntos de datos.
      Ejecutar en el compilador de Python →

      Practica con un reto

      Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.

      Todos los retos