Una de las características más elegantes de Python es la comprensión de listas. Te permite crear una lista nueva a partir de otra en una sola línea, de forma más legible y eficiente que un ciclo for tradicional.
¿Qué es la comprensión de listas?
Es una forma compacta de crear listas. En lugar de escribir un for con un append, escribes todo en una sola expresión dentro de corchetes.
Sintaxis
nueva_lista = [expresion for elemento in iterable]
# Con condición:
nueva_lista = [expresion for elemento in iterable if condicion]
Ejemplo 1: comparación con for tradicional
La forma tradicional de obtener los cuadrados del 1 al 5:
# Con for
cuadrados = []
for n in range(1, 6):
cuadrados.append(n ** 2)
# Con comprensión de listas
cuadrados = [n ** 2 for n in range(1, 6)]
print(cuadrados) # [1, 4, 9, 16, 25]
Mismo resultado, una sola línea.
Ejemplo 2: filtrar con condición
Obtener solo los números pares de una lista:
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
pares = [n for n in numeros if n % 2 == 0]
print(pares) # [2, 4, 6, 8, 10]
Ejemplo 3: transformar strings
Convertir una lista de nombres a mayúsculas y filtrar los que tienen más de 4 letras:
nombres = ["ana", "carlos", "em", "maría", "bo"]
largos_mayus = [n.upper() for n in nombres if len(n) > 4]
print(largos_mayus) # ['CARLOS', 'MARÍA']
Cuándo usar comprensión de listas
Úsala cuando la operación es simple y cabe en una línea sin perder claridad. Para lógica más compleja, un for tradicional es más legible.
# Simple: usa comprensión
dobles = [n * 2 for n in numeros]
# Complejo: mejor un for
resultado = []
for n in numeros:
if n > 3:
valor = n ** 2 - n + 1
if valor < 100:
resultado.append(valor)
Comprensión de diccionarios
La misma sintaxis funciona para diccionarios:
precios = {"manzana": 500, "pera": 800, "uva": 1200}
# Aplicar 10% de descuento a todos
con_descuento = {k: v * 0.9 for k, v in precios.items()}
print(con_descuento)
# {'manzana': 450.0, 'pera': 720.0, 'uva': 1080.0}
Errores frecuentes
Comprensiones demasiado complejas: Si necesitas más de una condición o una transformación de varios pasos, usa un for tradicional. La legibilidad es más importante que la brevedad.
Olvidar que crea una nueva lista: La comprensión no modifica la lista original — siempre genera una nueva. Guarda el resultado en una variable.
Aprende haciendo, no solo leyendo
Leer es el primer paso. El verdadero aprendizaje ocurre cuando practicas con ejercicios reales de Python y recibes corrección inmediata de IA.
Comenzar gratis →