Skip to main content

Comprensión de listas

La comprensión de listas es una sintaxis de Python que permite crear listas de forma concisa y eficiente. Se basa en el uso de expresiones lambda, que son funciones anónimas que se pueden utilizar para realizar operaciones simples.

Estructura básica

La estructura básica de una comprensión de listas es la siguiente:

Python

[ expresión para cada elemento en secuencia ]

Por ejemplo, la siguiente comprensión de listas crea una lista de los cuadrados de los números del 1 al 10:

Python

cuadrados = [ x ** 2 for x in range(1, 11) ]

Esta comprensión de listas se puede leer de la siguiente manera:

  • Para cada elemento x en la secuencia range(1, 11),
  • Realiza la expresión x ** 2.
  • Agrega el resultado a la lista cuadrados.

Expresión para cada elemento

La expresión para cada elemento puede ser cualquier expresión válida de Python. Puede ser una expresión simple, como en el ejemplo anterior, o puede ser una expresión más compleja que incluya funciones lambda.

Funciones lambda

Las funciones lambda se pueden utilizar en las comprensiones de listas para realizar operaciones más complejas. Una función lambda es una función anónima que se puede definir de la siguiente manera:

Python

lambda argumentos: expresión

Por ejemplo, la siguiente comprensión de listas crea una lista de los números del 1 al 10, pero solo los que son pares:

Python

pares = [ x for x in range(1, 11) if x % 2 == 0 ]

Esta comprensión de listas se puede leer de la siguiente manera:

  • Para cada elemento x en la secuencia range(1, 11),
  • Si la expresión x % 2 == 0 es verdadera,
  • Agrega el elemento x a la lista pares.

Función lambda dentro de otra función

Las funciones lambda también se pueden utilizar dentro de otras funciones. Por ejemplo, la siguiente función crea una lista de los números del 1 al 10, pero solo los que son divisibles por 3:

Python

def divisible_por_tres(x):
return x % 3 == 0

numeros_divisibles_por_tres = [ x for x in range(1, 11) if divisible_por_tres(x) ]

Esta función se puede leer de la siguiente manera:

  • La función divisible_por_tres() toma un número x como argumento.
  • La función devuelve True si x es divisible por 3.
  • La función numeros_divisibles_por_tres() crea una lista de los números del 1 al 10.
  • Para cada elemento x en la secuencia range(1, 11),
  • Si la expresión divisible_por_tres(x) es verdadera,
  • Agrega el elemento x a la lista numeros_divisibles_por_tres.

Ejemplos adicionales

A continuación se muestran algunos ejemplos adicionales de cómo utilizar las comprensiones de listas:

  • Para crear una lista de los cuadrados de los números del 1 al 10, pero solo los que son mayores que 25:

Python

cuadrados_mayores_que_25 = [ x ** 2 for x in range(1, 11) if x ** 2 > 25 ]
  • Para crear una lista de las cadenas "par" si el número es par y "impar" si el número es impar:

Python

pares_o_impares = [ "par" if x % 2 == 0 else "impar" for x in range(1, 11) ]
  • Para crear una lista de las cadenas "Hola" si el número es mayor que 5 y "Adiós" si el número es menor o igual a 5:

Python

saludos = [ "Hola" if x > 5 else "Adiós" for x in range(1, 11) ]

Las comprensiones de listas son una herramienta poderosa que puede utilizarse para crear listas de forma concisa y eficiente. Con un poco de práctica, podrás dominar el uso de las comprensiones de listas para crear código más eficiente y reutilizable.