8 - “List comprehensions”

Lección 8 del curso Python Nivel Intermedio.

Introducción

En la lección anterior vimos parte de la versatilidad de las listas y tuplas, cuando analizamos los métodos y funciones útiles para el procesamiento de secuencias.

En esta lección continuaremos viendo la versatilidad de las listas, así que hablaremos específicamente de las list comprehensions, una forma práctica y muy concisa de generar y operar sobre listas en Python.

Contenido exclusivo suscriptores

Suscríbete y accede al código fuente y al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

¿Qué son las list comprehensions?

Para entender la ventaja de usar esta estructura particular veamos un ejemplo sencillo: la creación de una lista.

Con lo que hemos aprendido hasta el momento, podríamos hacer uso de un ciclo for convencional. Por ejemplo, para crear una lista con los números del 0 al 10, haríamos lo siguiente:

lista1 = []
for i in range(11):
    lista1.append(i)

print(lista1)

Pues resulta que en el caso particular de las listas, podemos reemplazar las tres primeras líneas de código por una sola, y obtendremos el mismo resultado:

lista2 = [item for item in range(11)]

Y esta última línea de código es precisamente una list comprehension: una manera compacta (¡1 línea de código!) de crear una lista.

Esencialmente lo que hemos hecho es colocar el ciclo for en una sola línea de código (item for item in range(11)) dentro de una lista ([ y ]) . Con esta sintaxis automáticamente Python permite crear la lista con los elementos especificados en el iterable (range(11)).

Operaciones usando list comprehensions

Además de permitirnos crear listas, podemos igualmente usar las list comprehensions para operar sobre ellas. Las operaciones más comunes son:

Además, es importante aclarar que este tipo de operaciones se aplican a listas con diferentes tipos de datos, y no únicamente a las listas numéricas.

Generadores

Si en una list comprehension cambiamos las llaves cuadradas ([, ]) por paréntesis ((, )) tendremos algo que se conoce como un generador.

En la list comprehension, una vez ejecutada la línea de código tendremos de inmediato todos los elementos de la lista. En el caso del generador, cada elemento se genera por demanda.

Esto resulta útil si no necesitamos todos los elementos de la lista de inmediato, o si la lista es extensa y tenemos restricciones de memoria RAM.

Contenido exclusivo suscriptores

Recuerda suscribirte para acceder al código fuente y al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Conclusión

Como vimos las list comprehensions son una forma muy práctica y muy “Pythonica” de crear y operar sobre listas que contengan diferentes tipos de datos.

En la siguiente lección seguiremos profundizando sobre esta nueva herramienta y la combinaremos con otras funciones, entre ellas filter, lambda y map que nos permitirán realizar un procesamiento más avanzado de las listas.

Ver todas las lecciones de este curso