HOWTO · Python

Cómo listar el alfabeto en Python

Este artículo demuestra cómo listar todo el alfabeto en Python

En esta página

Para guardar las 26 letras minúsculas del alfabeto inglés en una lista de Python, convierte la constante de cadena de la biblioteca estándar string.ascii_lowercase con list(). El resultado es una lista con un carácter en cada elemento. Es la opción más clara si necesitas una secuencia lista para usar con el alfabeto inglés.

Crear una lista con string.ascii_lowercase

El módulo string de Python proporciona constantes para grupos habituales de caracteres. string.ascii_lowercase es la cadena abcdefghijklmnopqrstuvwxyz; al convertirla con list(), se obtiene una lista con sus 26 letras individuales. Importa string antes de usar la constante.

Ejecuta este ejemplo:

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

import string

letters = list(string.ascii_lowercase)
print(letters)
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

Para obtener las letras mayúsculas del alfabeto inglés, usa string.ascii_uppercase en la misma expresión. Estas constantes son cadenas, por lo que list() las divide en caracteres; para obtener una lista, primero hay que convertirlas.

Generar letras con range() y map()

También puedes crear la lista a partir de puntos de código de caracteres. La función range() produce números enteros desde el inicio hasta el valor final, sin incluirlo. La función map() aplica otra función a cada elemento de un iterable. En este caso, map(chr, ...) convierte cada número entero en el carácter correspondiente, y list() reúne los resultados.

Ejecuta este ejemplo:

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

letters = list(map(chr, range(97, 123)))
print(letters)
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

En ASCII, las letras minúsculas del alfabeto inglés tienen los puntos de código del 97 al 122. Como range() no incluye el valor final, usa 123 para incluir el punto de código de z (122). Si el valor final fuera 122, la lista generada terminaría en y.

Generar letras con ord() y una comprensión de listas

Una comprensión de listas expresa directamente la misma conversión. La función ord() devuelve el punto de código Unicode de un carácter, mientras que chr() convierte un punto de código en un carácter. Empezar en ord("a") y terminar después de ord("z") evita depender de valores numéricos escritos a mano.

Ejecuta este ejemplo:

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

letters = [chr(code_point) for code_point in range(ord("a"), ord("z") + 1)]
print(letters)
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

El + 1 incluye el punto de código de z, ya que el valor final de range() sigue siendo exclusivo. Esta versión resulta útil cuando el carácter inicial o final debe proceder de una variable u otra entrada.

Elegir un método y entender el rango de caracteres

Usa string.ascii_lowercase para obtener una lista concisa y legible con las 26 letras minúsculas del alfabeto inglés; elige string.ascii_uppercase para las mayúsculas. range() junto con map(), así como la comprensión con ord(), muestran cómo funciona la conversión de caracteres y son más fáciles de adaptar cuando necesitas una secuencia definida por ciertos caracteres iniciales y finales.

Estos ejemplos abarcan el alfabeto inglés, cuyas letras ocupan un rango consecutivo en ASCII. En Python, ord() y chr() funcionan con puntos de código Unicode, no solo con ASCII. Sin embargo, incrementar los puntos de código a partir de un extremo no genera el alfabeto de todos los sistemas de escritura: muchos tienen caracteres fuera de este intervalo o no forman una secuencia consecutiva. Para otro alfabeto, define explícitamente la secuencia de caracteres que necesitas en vez de suponer que un rango numérico coincidirá con ella.