Es posible añadir también una condición para escoger los datos de partida añadiendo una sentencia if después de la sentencia for. Por ejemplo, supongamos que partimos de la lista de números entre 0 y 10 y queremos calcular el cuadrado de los números pares (y añadirlos a la lista de salida). Podríamos hacerlo del siguiente modo:
[n ** 2 for n in range(11) if n % 2 == 0]
[0, 4, 16, 36, 64, 100]
Si quisiéramos leer esto sería algo como "genera una lista con el cuadrado de los números, perteneciendo estos números al rango 0-10 (ambos incluidos) pero solo si n es par".