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
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:
[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
- Aprende el concepto paso a paso en la lección Construye una lista con una comprehension.
- Lista: definición y ejemplo
- Generador: definición y ejemplo
- Ver todos los términos del glosario