Comprensión de listas en Python

La comprensión de listas en Python es una forma concisa y eficiente de crear listas aplicando una expresión a cada elemento de otro iterable (como otra lista, tupla, rango, etc.). Es una característica poderosa y elegante del lenguaje que permite simplificar la creación de listas en una sola línea de código.

Sintaxis de la compresión de listas en Python

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

Ejemplo

    nueva_lista = [expresion for elemento in iterable]
  

Donde:

  • nueva_lista : es la lista resultante que se crea a partir de la comprensión.
  • expresion : es una operación o cálculo que se aplicará a cada elemento del iterable.
  • elemento : es una variable que toma el valor de cada elemento del iterable en cada iteración.
  • iterable : es la colección de elementos sobre la cual se realizará la comprensión (por ejemplo, otra lista, tupla, rango, etc.).

Además, la comprensión de listas también puede incluir una cláusula if para filtrar los elementos que cumplen una condición específica:

Ejemplo

    nueva_lista = [expresion for elemento in iterable if condicion]

  

Donde:

  • condicion : es una expresión booleana que determina si se incluye o no el elemento en la nueva lista.

La comprensión de listas es una alternativa elegante a los bucles for tradicionales para crear listas de manera eficiente y legible. A continuación, se presentan dos ejemplos utilizando la comprensión de listas:

Ejemplo compresión de listas en Python

Crear una lista con los cuadrados de los números del 1 al 5:

Ejemplo

    numeros = [1, 2, 3, 4, 5]
cuadrados = [numero**2 for numero in numeros]
print(cuadrados)  # Salida: [1, 4, 9, 16, 25]
  
Abrir en editor

Ejemplo para crear una nueva lista aplicando una expresión a cada elemento

Filtrar los números pares de una lista y crear una nueva lista con ellos:

Ejemplo

    numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
numeros_pares = [numero for numero in numeros if numero % 2 == 0]
print(numeros_pares)  # Salida: [2, 4, 6, 8, 10]
  
Abrir en editor

En ambos ejemplos, la comprensión de listas permite crear una nueva lista aplicando una expresión a cada elemento y, en el segundo ejemplo, también se filtran los elementos que cumplen con la condición de ser números pares. Esto se logra de manera concisa y fácil de entender, lo que hace que la comprensión de listas sea una herramienta muy útil en Python.

Condición en comprensión de listas

En la comprensión de listas en Python, podemos agregar una condición para filtrar los elementos que queremos incluir en la nueva lista. La condición se coloca al final de la comprensión de lista después de la expresión y se especifica con la palabra clave if . Solo los elementos que cumplan la condición se incluirán en la lista resultante.

Ejemplo

    # Lista original
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Comprensión de lista con condición para obtener solo los números pares
numeros_pares = [num for num in numeros if num % 2 == 0]

# Resultado: [2
# Resultado: [2, 4, 6, 8, 10]
print(numeros_pares)
# Resultado: [2, 4, 6, 8, 10]
print(numeros_pares)
  
Abrir en editor

Iterable en comprensión de listas

En la comprensión de listas, el iterable es la colección de elementos sobre la cual queremos iterar para crear una nueva lista. Puede ser una lista, una tupla, un conjunto, una cadena u otro tipo de colección iterable en Python.

Ejemplo

    # Iterable original
nombres = ["Ana", "Luis", "Carmen", "Diego"]

# Comprensión de lista para obtener la longitud de cada nombre
longitudes = [len(nombre) for nombre in nombres]

# Resultado: [3, 4, 6, 5]
print(longitudes)
  
Abrir en editor

Expresión en comprensión de listas

La expresión en la comprensión de listas define cómo se generarán los elementos de la nueva lista. Es la parte de la comprensión de lista que especifica la transformación o el cálculo que se aplicará a cada elemento del iterable para obtener el valor que se incluirá en la nueva lista.

Ejemplo

    numeros = [1, 2, 3, 4, 5]
cuadrados = [numero**2 for numero in numeros]
print(cuadrados)  # Salida: [1, 4, 9, 16, 25]
  

Practica Comprensión de listas en Python en el editor

Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.

Ejercicio: Crear una lista con los cuadrados de los números del 1 al 5

Crear una lista con los cuadrados de los números del 1 al 5.

Ejemplo

    numeros = [1, 2, 3, 4, 5]
cuadrados = [numero**2 for numero in numeros]
print(cuadrados)  # Salida: [1, 4, 9, 16, 25]
  
Abrir en editor

Ejercicio: Bucle for

Filtrar los números pares de una lista y crear una nueva lista con ellos.

Ejemplo

    numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
numeros_pares = [numero for numero in numeros if numero % 2 == 0]
print(numeros_pares)  # Salida: [2, 4, 6, 8, 10]
  
Abrir en editor

Ejercicio: Bucle for (2)

En la comprensión de listas en Python, podemos agregar una condición para filtrar los elementos que queremos incluir en la nueva lista. La condición se coloca al final de la compre.

Ejemplo

    # Lista original
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Comprensión de lista con condición para obtener solo los números pares
numeros_pares = [num for num in numeros if num % 2 == 0]

# Resultado: [2
# Resultado: [2, 4, 6, 8, 10]
print(numeros_pares)
# Resultado: [2, 4, 6, 8, 10]
print(numeros_pares)
  
Abrir en editor

Ejercicio: Iterable original

En la comprensión de listas, el iterable es la colección de elementos sobre la cual queremos iterar para crear una nueva lista. Puede ser una lista, una tupla, un conjunto, una cad.

Ejemplo

    # Iterable original
nombres = ["Ana", "Luis", "Carmen", "Diego"]

# Comprensión de lista para obtener la longitud de cada nombre
longitudes = [len(nombre) for nombre in nombres]

# Resultado: [3, 4, 6, 5]
print(longitudes)
  
Abrir en editor

Ejercicio: Bucle for (3)

La expresión en la comprensión de listas define cómo se generarán los elementos de la nueva lista. Es la parte de la comprensión de lista que especifica la transformación o el cálc.

Ejemplo

    # Comprensión de lista con condición para obtener solo los números pares
numeros_pares = [num for num in numeros if num % 2 == 0]
print(numeros_pares)
  
Abrir en editor

Comprueba lo aprendido

Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.