Glosario de Python

Qué es una list comprehension en Python con ejemplos

Una comprehension construye una lista nueva a partir de un recorrido en una sola expresión.

Definición

Una comprensión de listas combina una colección de origen, una variable por vuelta y una expresión que produce cada elemento: [n * n for n in numeros]. Es equivalente a un bucle que crea una lista vacía y añade con append.

Un if al final filtra: solo entran los elementos que cumplen la condición. Si la transformación necesita varias instrucciones, un bucle explícito es más claro.

Ejemplo

ejemplo.py
numeros = [1, 2, 3, 4]
cuadrados = [n * n for n in numeros]
pares = [n for n in numeros if n % 2 == 0]
print(cuadrados)
print(pares)

Al ejecutarlo, Python muestra:

Salida
[1, 4, 9, 16]
[2, 4]

Puedes copiar el ejemplo y cambiarlo en el editor Python del navegador: modificar un valor y predecir el resultado es la mejor forma de fijar el concepto.

Error frecuente

Lee primero el for y el filtro, y al final la expresión que se añade, aunque esa expresión aparezca a la izquierda. La lista original no cambia.

Cómo se diferencia de otros conceptos

Una comprehension hace lo mismo que un bucle for con append, pero en una expresión. No es obligatoria: si la transformación necesita varias instrucciones, el bucle explícito es más claro. No la confundas con un generador, que usa paréntesis en lugar de corchetes y produce valores bajo demanda.

Preguntas frecuentes

¿Cuándo usar una comprensión de listas?

Cuando puedas explicar la transformación en una frase: «cada número al cuadrado» o «los números que cumplen una condición». Si necesitas varios pasos, usa un bucle.

¿Puedo anidar varias?

Se puede, pero rápidamente se vuelve ilegible. Si necesitas más de un for o más de una condición, un bucle normal suele ser mejor.

Dónde seguir