Comunidad de diseño web y desarrollo en internet online

Listas por Comprensión en Python

Las listas por Comprensión proporcionan una forma muy sencilla de crear listas en Python a partir de secuencias (list/listas, tuple/tuplas, dict/diccionarios, set/conjuntos, str/cadenas). El uso más común de esta característica es el de construir listas, donde cada uno de sus elementos son el resultado de alguna operación aplicada a cada uno de los elementos de la secuencia, o para crear una sub-secuencia de elementos que cumplan ciertas condiciones.

Las listas por comprensión están compuestas por corchetes, los cuales encierran una expresión seguida por una cláusula for y, a continuación cero o más cláusulas for o cláusulas if.

Aquí tomamos una lista de números y retornamos una lista con sus cubos

Código :

>>> numeros = range(1, 5)     # Equivalente a 'numeros = [1, 2, 3, 4]'
>>> [x**3 for x in numeros]
[1, 8, 27, 64]


Podemos realizar operaciones tales como convertir una tupla de cadenas a una lista de enteros:

Código :

>>> cadenas = ("23", "2", "465")
>>> [int(x) for x in cadenas]
[23, 2, 465]


En este caso, generamos la tabla de multiplicar del 3:

Código :

>>> tabla = [(x, x*3) for x in range(11)]
>>> for x, y in tabla:
...  print(x, " ", y)
... 
0   0
1   3
2   6
3   9
4   12
5   15
6   18
7   21
8   24
9   27
10   30


Imaginen que poseemos un diccionario de la forma nombre -> estado (clave -> valor), el estado representa si la persona cuyo nombre es nombre irá o no a tu cumpleaños y deseas obtener los nombres de las personas que sí asistirán. He aquí un fragmento de código que te puede ayudar:

Código :

>>> invitados = {"María": "Asistirá", "Luis": "Asistirá", "Ángel": "No asistirá",
... "Pedro": "Asistirá", "Carla": "No asistirá"}
>>> [nombre for nombre, estado in invitados.items() if estado == "Asistirá"]
['Pedro', 'Luis', 'María']



--
Nota: Deseo agradecer al Claber @JaAViEr por la idea :)

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate