Saltar a contenido
 No os perd谩is mi futuro contenido, seguidme en y Youtube 馃榿

Comprensi贸n de listas

El poder de Python va mucho m谩s all谩 de lo que a primera vista podemos imaginar.

La comprensi贸n de listas, del ingl茅s list comprehensions, es una funcionalidad que nos permite crear listas avanzadas en una misma l铆nea de c贸digo. Esto se ve mucho mejor en la pr谩ctica, as铆 que a lo largo de esta lecci贸n vamos a trabajar distintos ejemplos.

Ejemplo 1

Crear una lista con las letras de una palabra:

Note

# M茅todo tradicional
lista = []
for letra in 'casa':
    lista.append(letra)
print(lista)
['c', 'a', 's', 'a']

Note

# Con comprensi贸n de listas
lista = [letra for letra in 'casa']
print(lista)
['c', 'a', 's', 'a']

Como vemos, gracias a la comprensi贸n de listas podemos indicar directamente cada elemento que va a formar la lista, en este caso la letra, a la vez que definimos el for:

Note

# La lista est谩 formada por cada letra que recorremos en el for
lista = [letra for letra in 'casa']  

Ejemplo 2

Crear una lista con las potencias de 2 de los primeros 10 n煤meros:

Note

# M茅todo tradicional
lista = []
for numero in range(0,11):
    lista.append(numero**2)
print(lista)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Note

# Con comprensi贸n de listas
lista = [numero**2 for numero in  range(0,11)]
print(lista)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

De este ejemplo podemos aprender que es posible modificar al vuelo los elementos que van a formar la lista.

Ejemplo 3

Crear una lista con los todos los m煤ltiples de 2 entre 0 y 10:

Note

# M茅todo tradicional
lista = []
for numero in range(0,11):
    lista.append(numero**2)
print(lista)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Note

# M茅todo tradicional
lista = []
for numero in range(0,11):
    if numero % 2 == 0:
        lista.append(numero)
print(lista)
# Con comprensi贸n de listas
lista = [numero for numero in range(0,11) if numero % 2 == 0 ]
print(lista)

Note

# A帽adir los n煤meros del 0 al 10 cuando su m贸dulo de 2 sea 0
[numero for numero in range(0,11) if numero % 2 == 0 ] 

En este caso podemos observar que incluso podemos marcar una condici贸n justo al final para a帽adir o no el elemento en la lista.

Ejemplo 4

Crear una lista de pares a partir de otra lista creada con las potencias de 2 de los primeros 10 n煤meros:

Note

# M茅todo tradicional
lista = []
for numero in range(0,11):
    lista.append(numero**2)

pares = []   
for numero in lista:
    if numero % 2 == 0:
        pares.append(numero)

print(pares)
[0, 4, 16, 36, 64, 100]

Note

# Con comprensi贸n de listas
lista = [numero for numero in 
            [numero**2 for numero in range(0,11)] 
                if numero % 2 == 0 ]
print(lista)
[0, 4, 16, 36, 64, 100]

Crear listas a partir de listas anidadas nos permite llevar la comprensi贸n de listas al siguiente nivel y adem谩s no hay un l铆mite.


脷ltima edici贸n: 6 de Octubre de 2018