Las list comprehension en Python son una de las grandes razones por las que los desarrolladores aman tanto este lenguaje de programación. Resulta que te brindan una manera fácil de crear y modificar listas. En este post te explicaremos exactamente qué es una list comprehension y por qué deberías usarla en tus proyectos.
¿Qué es una list comprehension en Python?
Podríamos decir que una list comprehension en Python es una mejor manera de crear listas en menos líneas de código. En lugar de usar un bucle for tradicional para generar una lista, con una list comprehension puedes lograr lo mismo en una sola línea, haciéndolo más simple y fácil de leer.
Por ejemplo, si quieres crear una lista con los números pares del 1 al 10, normalmente usarías un bucle for, como harías en muchos otros lenguajes de programación, de la siguiente manera:
pares = []
for i in range(1, 11):
if i % 2 == 0:
pares.append(i)
Sin embargo, con list comprehension, puedes lograr el mismo resultado de una manera más sencilla:
pares = [i for i in range(1, 11) if i % 2 == 0]
Aunque obtienes el mismo resultado, tu código es más claro y fácil de leer. Por eso las list comprehension en Python son tan usadas.
Ejemplo práctico de list comprehension
Para este ejemplo vas a trabajar con una lista de números. Tú quieres crear una nueva lista que contenga el doble de los números impares.
Si optas por el bucle for tradicional, harías algo como esto:
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9]
doble_impares = []
for num in numeros:
if num % 2 != 0:
doble_impares.append(num * 2)
Pero, si usas una list comprehension en Python, reduces todo ese código en una línea mucho más legible:
doble_impares = [num * 2 for num in numeros if num % 2 != 0]
Puedes ver claramente que ambos ejemplos hacen lo mismo: filtran los números impares de la lista original y los duplican en la nueva lista, pero con el segundo enfoque trabajarás de una manera más ordenada.
Añadiendo condicionales a las list comprehension en Python
Lo grandioso es que, al trabajar con las list comprehension también puedes añadir condicionales. De esta manera tienes más control sobre qué elementos incluir.
Si te fijaste en el ejemplo anterior, lo que hicimos fue añadir una condición al final para filtrar elementos de acuerdo con un criterio específico.
Entonces, si quisiéramos incluir solo los números impares en nuestra lista, podríamos usar esta sintaxis:
impares = [num for num in range(1, 11) if num % 2 != 0]
Aquí, estamos iterando sobre los números del 1 al 10 y solo estamos añadiendo aquellos que cumplen con la condición de ser impares.
Otros tipos de comprehensions
Es importante que sepas que, con las list comprehension en Python también puedes crear otros tipos de colecciones, como conjuntos y diccionarios.
Set comprehension
Con un set comprehension puedes crear conjuntos que no permiten duplicados. La sintaxis es prácticamente idéntica, solo que utilizas llaves {} en lugar de corchetes [].
Por ejemplo:
cuadrados = {i**2 for i in range(1, 6)}
Dictionary comprehension
Ahora bien, con las dictionary comprehension creas diccionarios especificando tanto la clave como el valor en una sola línea. Así:
cuadrados_dict = {i: i**2 for i in range(1, 6)}
¿Por qué deberías usar las list comprehension en Python?
- Código más limpio y legible: Tu código será más fácil de leer, ya que se condensa la creación de listas en una sola línea. Esto no solo reduce el número de líneas, sino que también mejora la claridad del código.
- Mayor eficiencia: Estas list comprehension suelen ser más rápidas que los bucles tradicionales, ya que están optimizadas internamente. Así que te facilitarán el manejo de grandes cantidades de datos.
- Fácil de mantener: Como son más compactas, tu código se vuelve más fácil de mantener. Recuerda que es mucho más sencillo entender y modificar el código cuando puedes verlo de un vistazo.
- Flexibilidad y expresividad: Son súper flexibles: puedes aplicar cálculos, llamadas a funciones o transformaciones complejas a los elementos de una lista.
¿Cuándo NO deberías usar las list comprehension?
Si estás trabajando con expresiones muy complejas, puede que con las list comprehension tu código sea más difícil de leer. Entonces, en estos casos, mejor usa el bucle tradicional que es más explícito y fácil de entender.
Por ejemplo, si la list comprehension tiene varias condiciones o llamadas a funciones anidadas, podría ser mejor separarlo en varias líneas para mantener la claridad del código.
Puedes aprender mucho más sobre Python y otras herramientas importantes para convertirte en un desarrollador web de alto nivel, en el Bootcamp de Desarrollo Web de KeepCoding. Aquí te convertirás en un experto en las tecnologías más demandadas. Recuerda que el sector IT te ofrece estabilidad laboral, altos salarios y una proyección de crecimiento inigualable. ¡Apúntate y transforma tu futuro!