Trucos para comprensión de listas en Python

Publicado el 02 noviembre 2020 por Daniel Rodríguez @analyticslane

La comprensión de listas en Python hace referencia a los procedimientos que se puede utilizar para crear nuevas listas a partir de otras. Algo que también se puede aplicar a otros tipos de colecciones. Para los que usamos Python de forma habitual esta es una técnica habitual con la que se pueden realizar tareas complejas con poco código. Por ejemplo, se puede crear un vector con la longitud de las cadenas de otro simplemente con

frutas = ["fresas", "manzana", "pera"]
longitud = [len(x) for x in frutas]
longitud
[6, 7, 4]

Por lo que se puede ver, solamente se ha necesitado una línea de código. Algo que además es fácil de comprender para los usuarios familiarizados con la comprensión de listas en Python.

Comprensión de listas básicas en Python

La compresión de listas es algo relativamente sencillo como se ha visto en la introducción. Simplemente se ha de situar entre corchetes una función que itere sobre una lista, o cualquier otro elemento iterable. Algo que se puede estudiar en el ejemplo anterior. Se aplica la función len(x) a cada uno de los elementos de la lista for x in frutas, lo que se almacena en una nueva lista.

Filtrado de elementos

Algo que también permite la comprensión de listas en Python es aplicar un filtro. Para seleccionar únicamente los elementos que sean de interés. Por ejemplo, se puede obtener únicamente las futuras cuyos nombres tengan una longitud mayor de cuatro caracteres, simplemente añadiendo un if al final con la condición.

[x for x in frutas if len(x) > 4]
['fresas', 'manzana']

Generar un diccionario mediante comprensión

Como se ha comentado en la introducción, la comprensión se puede utilizar también para crear cualquier tipo de colección. Entre las que se encuentran los diccionarios. Una vez creada la segunda lista se puede combinar con la primera mediante el método zip e inyectar estas en un diccionario. Por lo que simplemente utilizando el siguiente ejemplo se puede construir un diccionario donde la clave es la fruta y en valor la longitud de la cadena.

dict(zip(frutas, longitud))
{'fresas': 6, 'manzana': 7, 'pera': 4}

Conclusiones

En esta entrada hemos vistos los fundamentos de la compresión de listas en Python. Una técnica con la que es posible crear fácilmente nuevas listas de una forma compacta y fácil.

Imagen de Gayathiri Gengatharan en Pixabay