List comprehensions en Python: Entendiendo qué son y cómo se usan.

List comprehensions en Python

Este post es de esos que me gustan y espero que a ti también. Y me gusta porque cumple el propósito del blog: que aprendas a usar Python como un auténtico pythonista. Si has llegado hasta aquí es porque has oído hablar de las list comprehensions en Python y quieres saber qué son. Sí, si quieres ser maestr@ pythoner@ debes entender y manejar a la perfección las list comprehensions.

Qué son las list comprehensions

Básicamente son una forma de crear listas de una manera elegante simplificando el código al máximo. Como lo oyes, Python define una estructura que permite crear listas de un modo un tanto especial. Te lo mostraré con un ejemplo:

numeros = [1, 2, 34, 86, 4, 5, 99, 890, 45]

pares = []
for num in numeros:
    if num % 2 == 0:
        pares.append(num)
print(pares)

El código anterior crea una lista de números pares a partir de una lista de números. Para este tipo de situaciones es ideal el uso de las list comprehensions. El código anterior se puede modificar de la siguiente manera con la sintaxis de las list comprehensions:

pares = [num for num in numeros if num % 2 == 0]
print(pares)

Cómo se usan las list comprehensions

La estructura de las list comprehensions es la siguiente:

[   expresion(i)   for i in list   if condición   ]

Es decir, entre corchetes definimos una expresión seguida de un bucle for al que opcionalmente le pueden seguir otros bucles for y/o una condición.

❗️El resultado siempre es una lista.

El código anterior es similar al siguiente:

nueva_lista = []
for i in list:
    if condición:
        nueva_lista.append(expresion(i))

Ejemplos de uso de list comprehensions

A continuación te muestro diferentes formas de aplicar lo aprendido aunque ejemplos hay miles:

Capitalizar las palabras de una lista

palabras = ['casa', 'perro', 'puerta', 'pizza']
cap = [palabra.title() for palabra in palabras]
print(cap)

Calcular los cuadrados del 0 al 9

cuadrados = [num**2 for num in range(10)]
print(cuadrados)

Calcular los cuadrados del 0 al 9 de los números pares

cuadrados_pares = [num**2 for num in range(10) if num % 2 == 0]
print(cuadrados_pares)

Listar los ficheros python del directorio actual que comienzan por ‘f’

import os
ficheros_python = [f for f in os.listdir('.') if f.endswith('.py') and f.startswith('f')]
print(ficheros_python)

Número, doble y cuadrado de los números del 0 al 9

num_doble_cuadrado = [(num, num*2, num**2) for num in range(10)]
print(num_doble_cuadrado)

Ejemplo de doble bucle for

saludos = ['hola', 'saludos', 'hi']
nombres = ['j2logo', 'antonio', 'vega']
frases = ['{} {}'.format(saludo.title(), nombre.title()) for saludo in saludos for nombre in nombres]
print(frases)

Conclusión

No se puede decir mucho más sobre el tema 😅 Solo espero que el post te sirva de inspiración para aplicarlo en tu código Python de aquí en adelante 😉

Si tienes cualquier duda al respecto o sobre otro tema, ya sabes que puedes ponerte en contacto conmigo a través de mis redes sociales o enviándome un email.

¿Quieres ser expert@ en Python? Recibe trucos Python y las últimas novedades del blog

¡Eyyy! Esto también te puede interesar 👇

* Te informo de que los datos de carácter personal que proporciones al comentar serán tratados por Juan José Lozano Gómez como responsable de esta web. La Finalidad es moderar los comentarios. La Legitimación es gracias a tu consentimiento. Destinatarios: tus datos se encuentran alojados en Disqus (disqus.com), mi sistema de comentarios, que está acogido al acuerdo de seguridad EU-US Privacy. Podrás ejercer Tus Derechos de Acceso, Rectificación, Limitación o Suprimir tus datos enviando un email a juanjo@j2logo.com. Encontrarás más información en la POLÍTICA DE PRIVACIDAD.

Sobre j2logo

j2logo profile

Quiero ayudarte a que seas mejor programador/a, pero no uno cualquiera, sino uno de los top.

¿Quieres ser expert@ en Python? 🐍

❤️ He ayudado a miles de programadores/as como tú a ser mejores Pythonistas

📩 Recibe de vez en cuando trucos y scripts Python y las últimas novedades del blog

* Al enviar el formulario confirmas que aceptas la POLITICA DE PRIVACIDAD

¿Quieres ser expert@ en PYTHON?

j2logo-pythonistas

❤️ He ayudado a miles de programadores/as como tú

📩 Recibe trucos, scripts y las novedades del blog

¿Quieres dominar Python?

Python, Guía para ser un Pythonista

El curso con el que aprender el lenguaje desde cero. Con mi soporte y ayuda.

OFERTA BLACK FRIDAY

35% de descuento