Menu
Coddy logo textTech

Uso de agregación de datos

Parte de la sección Logic & Flow del Journey de Python de Coddy — lección 53 de 78.

Las comprensiones de listas proporcionan una forma concisa de crear nuevas listas basadas en iterables existentes. Puedes integrar funciones de agregación de datos como sum(), min() y max() directamente dentro de las comprensiones de listas para realizar cálculos sobre los elementos de la nueva lista a medida que se crea.

Calculando la suma de los cuadrados:

numbers = [1, 2, 3, 4, 5]
sum_of_squares = sum([n * n for n in numbers])
print(sum_of_squares)
# Salida: 55

En este ejemplo, la comprensión de listas [n * n for n in numbers] crea una lista de cuadrados, y la función sum() calcula la suma de estos cuadrados.

Encontrar el mínimo de valores transformados:

numbers = [-3, -1, 0, 1, 3]
min_absolute = min([abs(n) for n in numbers])
print(min_absolute)
# Salida: 0

Aquí, la comprensión de listas [abs(n) for n in numbers] crea una lista de valores absolutos, y la función min() encuentra el valor mínimo en esta lista.

Encontrar el máximo de valores filtrados:

numbers = [1, 2, 3, 4, 5, 6]
max_even = max([n for n in numbers if n % 2 == 0])
print(max_even)
# Salida: 6

En este ejemplo, la comprensión de listas [n for n in numbers if n % 2 == 0] crea una lista de números pares, y la función max() encuentra el valor máximo en esta lista.

challenge icon

Desafío

Fácil

Escribe una función sum_positive_evens que tome una lista de números como entrada. Usa una comprensión de listas para filtrar los números pares positivos, luego usa sum() para calcular su total. Devuelve el resultado.

Entrada de ejemplo:

numbers = [-10, -5, 0, 2, 4, 7, 10, 12]

Salida de ejemplo:

28

Hoja de referencia

Las comprensiones de listas se pueden combinar con funciones de agregación como sum(), min() y max() para realizar cálculos sobre datos transformados o filtrados.

Calcular la suma de los cuadrados:

numbers = [1, 2, 3, 4, 5]
sum_of_squares = sum([n * n for n in numbers])
# Resultado: 55

Encontrar el mínimo de los valores transformados:

numbers = [-3, -1, 0, 1, 3]
min_absolute = min([abs(n) for n in numbers])
# Resultado: 0

Encontrar el máximo de los valores filtrados:

numbers = [1, 2, 3, 4, 5, 6]
max_even = max([n for n in numbers if n % 2 == 0])
# Resultado: 6

Pruébalo tú mismo

def sum_positive_evens(numbers):
    # Escribe el código aquí
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Logic & Flow