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

List comprehensions en Python
Share on facebook
Share on twitter
Share on linkedin

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.

¿Me ayudas a compartir el post? 🤗🤟🏻

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn

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

Últimos posts

¿Quieres ser un auténtico Pythonista? 🐍

Recibe de vez en cuando trucos, scripts y tutoriales Python en español para dominar el lenguaje. No es SPAM. Date de baja cuando quieras.

* Te informo de que los datos de carácter personal que proporciones serán tratados por Juan José Lozano Gómez como responsable de esta web. La Finalidad es el envío de trucos, scripts, mis publicaciones así como correos comerciales. La Legitimación es gracias a tu consentimiento. Destinatarios: tus datos se encuentran alojados en mi plataforma de email marketing MailRelay que garantiza las medidas de seguridad encaminadas a proteger la privacidad. 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 POLITICA DE PRIVACIDAD

Tutoriales Python en español

👉🏻 🐍 Tutoriales Python. ¿Por qué Python?