En Python, las list comprehensions son una forma concisa y poderosa de crear y manipular listas. Nos permiten generar nuevas listas aplicando una expresión sobre cada elemento de una secuencia o iterable, todo ello en una sola línea de código. Es una alternativa más rápida y legible que utilizar bucles tradicionales, especialmente cuando queremos aplicar transformaciones simples a una lista.
La estructura básica de una list comprehension es la siguiente:
[nueva_expr for item in iterable]
Donde:
Por ejemplo, si queremos generar una lista con los cuadrados de los números del 1 al 5, podemos hacerlo con una list comprehension:
cuadrados = [x**2 for x in range(1, 6)]
print(cuadrados)
Salida:
[1, 4, 9, 16, 25]
Una de las ventajas de las list comprehensions es que podemos añadir condiciones para filtrar los elementos que queremos incluir en la nueva lista. Esto se hace añadiendo una cláusula if al final de la expresión.
Por ejemplo, si solo queremos los cuadrados de los números pares del 1 al 10:
cuadrados_pares = [x**2 for x in range(1, 11) if x % 2 == 0]
print(cuadrados_pares)
Salida:
[4, 16, 36, 64, 100]
También podemos trabajar con varios iterables en una list comprehension, como si estuviéramos anidando bucles for. Por ejemplo, para generar una lista con todas las combinaciones posibles entre dos listas: