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: 55En 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: 0Aquí, 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: 6En 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.
Desafío
FácilEscribe 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:
28Hoja 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: 55Encontrar el mínimo de los valores transformados:
numbers = [-3, -1, 0, 1, 3]
min_absolute = min([abs(n) for n in numbers])
# Resultado: 0Encontrar 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: 6Pruébalo tú mismo
def sum_positive_evens(numbers):
# Escribe el código aquíEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Logic & Flow
1Exploración de variables
ConstantesAsignación de múltiples variablesIntercambio de variablesVariables de marcador de posiciónRedondear númerosCasting de listas4Aplicación de Agenda de Contactos
Mostrar MenúAgregar Contacto7Conjuntos Parte 2
Operaciones matemáticas Parte 1Operaciones matemáticas Parte 2Resumen - Búsqueda del tesoroSubconjuntos y superconjuntosIterar sobre conjuntosResumen - Rastreador de torneos10Comprensión de listas básica
La sintaxisCreación de listas simplesAñadir condicionesUso de agregación de datosResumen - La casa de las listasResumen - Elementos de libertad13Sistema de Gestión de Inventarios
Descripción general del proyectoAgregar artículo2Diccionarios Parte 1
¿Qué es un diccionario?Crear un diccionarioAcceder a los valoresModificar diccionariosResumen - Gestor de recetas5Toma de decisiones avanzada
Operador ternarioComprobaciones de pertenenciaComprobaciones de identidadErrores de sangríaRepaso - Filtro de vacaciones8Gestor de registros de estudiantes
Descripción general del proyectoAñadir estudiante11Funciones avanzadas
Retornar múltiples valoresFunciones Lambda Parte 1Funciones Lambda Parte 2Desafío de repaso - Lambda SortFunciones recursivas Parte 1Funciones recursivas Parte 2Repaso - Sumar listas anidadas14Funciones de orden superior
La función MapLa función FilterRepaso - Validador de emailsRepaso - Procesador de números3Diccionarios Parte 2
Métodos de diccionariosDiccionarios anidadosVerificación de clavesIterar sobre diccionariosResumen - Contador de frecuencia6Conjuntos - Parte 1
¿Qué es un conjunto?Operaciones básicasMétodos de conjuntosResumen - Eliminar duplicados9Agregación de datos avanzada
Uso de SumBúsqueda de mínimo y máximoOrdenar datos de manera eficienteRepaso - Ordenador de diccionarios