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.
In [5]:
# Método tradicional
lista = []
for letra in 'casa':
lista.append(letra)
print(lista)
In [6]:
# Con comprensión de listas
lista = [letra for letra in 'casa']
print(lista)
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:
lista = [letra for letra in 'casa'] # La lista está formada por cada letra que recorremos en el for
In [7]:
# Método tradicional
lista = []
for numero in range(0,11):
lista.append(numero**2)
print(lista)
In [8]:
# Con comprensión de listas
lista = [numero**2 for numero in range(0,11)]
print(lista)
De este ejemplo podemos aprender que es posible modificar al vuelo los elementos que van a formar la lista.
In [11]:
# Método tradicional
lista = []
for numero in range(0,11):
if numero % 2 == 0:
lista.append(numero)
print(lista)
In [10]:
# Con comprensión de listas
lista = [numero for numero in range(0,11) if numero % 2 == 0 ]
print(lista)
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.
[numero for numero in range(0,11) if numero % 2 == 0 ] # Añadir los números del 0 al 10 cuando su módulo de 2 sea 0
In [12]:
# 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)
In [17]:
# Con comprensión de listas
lista = [numero for numero in [numero**2 for numero in range(0,11)] if numero % 2 == 0 ]
print(lista)
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.
Por ahora te animo a hacer tus propias pruebas y practicar, ya que de ahora en adelante haremos uso de la comprensión de listas en ejemplos y otras funcionalidades avanzadas.