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:
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:
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:
numeros = [1, 2, 3, 4, 5] cuadrados = [numero**2 for numero in numeros] print(cuadrados) # Salida: [1, 4, 9, 16, 25]
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:
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]
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.
# 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, 4, 6, 8, 10] print(numeros_pares)
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.
# Iterable original nombres = ["Alice", "Bob", "Charlie", "David"] # Comprensión de lista para obtener la longitud de cada nombre longitudes = [len(nombre) for nombre in nombres] # Resultado: [5, 3, 7, 5] print(longitudes)
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.
# Lista original numeros = [1, 2, 3, 4, 5] # Comprensión de lista para obtener el cuadrado de cada número cuadrados = [num ** 2 for num in numeros] # Resultado: [1, 4, 9, 16, 25] print(cuadrados)