Resumen - Filtrado de datos
Parte de la sección Lógica y Flujo del Journey de Dart de Coddy. Lección 16 de 65.
Desafío
FácilCrea un programa que administre una canalización de análisis de datos filtrando, transformando y procesando conjuntos de datos numéricos. Tu programa debe:
- Leer una entrada de cadena que represente el nombre del conjunto de datos
- Leer varias entradas enteras que representen valores de datos sin procesar (la entrada terminará cuando recibas
-1) - Leer una entrada entera que represente el umbral de valor mínimo para el filtrado
- Usar el método
where()para filtrar los valores que sean mayores que el umbral - Usar el método
map()para elevar al cuadrado cada valor filtrado - Usar el método
toList()para convertir el resultado final en una lista - Imprimir los resultados del procesamiento de datos en el formato exacto que se muestra a continuación
Por ejemplo, si el nombre del conjunto de datos es "Sales Data", los valores sin procesar son 2, 5, 1, 8, 3, 6 y el umbral es 3, tu programa debe mostrar:
Dataset: Sales Data
Raw data: [2, 5, 1, 8, 3, 6]
Threshold: 3
Filtering values > 3
Filtered values: (5, 8, 6)
Squaring filtered values
Squared values: (25, 64, 36)
Final processed data: [25, 64, 36]
Processing complete: 3 values processedSi el nombre del conjunto de datos es "Temperature Readings", los valores sin procesar son 1, 2 y el umbral es 5, tu programa debe mostrar:
Dataset: Temperature Readings
Raw data: [1, 2]
Threshold: 5
Filtering values > 5
Filtered values: ()
Squaring filtered values
Squared values: ()
Final processed data: []
Processing complete: 0 values processedSi el nombre del conjunto de datos es "Performance Metrics", los valores sin procesar son 4, 7, 9 y el umbral es 2, tu programa debe mostrar:
Dataset: Performance Metrics
Raw data: [4, 7, 9]
Threshold: 2
Filtering values > 2
Filtered values: (4, 7, 9)
Squaring filtered values
Squared values: (16, 49, 81)
Final processed data: [16, 49, 81]
Processing complete: 3 values processedTu programa debe encadenar las operaciones en esta secuencia exacta: primero usar where() para filtrar los valores mayores que el umbral, después usar map() para elevar al cuadrado cada valor filtrado y, finalmente, usar toList() para convertir el resultado en una lista. Los resultados intermedios deben mostrar el formato iterable entre paréntesis, mientras que la lista final debe mostrarse con el formato de corchetes.
Pruébalo tú mismo
import 'dart:io';
void main() {
// Leer el nombre del conjunto de datos
String? datasetName = stdin.readLineSync();
// Leer valores de datos brutos hasta que se encuentre -1
List<int> rawData = [];
while (true) {
int value = int.parse(stdin.readLineSync()!);
if (value == -1) break;
rawData.add(value);
}
// Leer el valor del umbral
int threshold = int.parse(stdin.readLineSync()!);
// Mostrar información inicial
print('Dataset: $datasetName');
print('Raw data: $rawData');
print('Threshold: $threshold');
print('Filtering values > $threshold');
// TODO: Escribe tu código abajo
// Usa where() para filtrar valores mayores que el umbral
// Usa map() para elevar al cuadrado cada valor filtrado
// Usa toList() para convertir el resultado en una lista
// Imprimir los resultados en el formato requerido
// Recuerda mostrar los valores filtrados en formato de paréntesis
// Mostrar los valores al cuadrado en formato de paréntesis
// Mostrar los datos finales procesados en formato de corchetes
// Imprimir el mensaje de procesamiento completo con el recuento
}Todas las lecciones de Lógica y Flujo
1Manipulación avanzada de listas
Propiedades de listas: first y lastEstado de la lista: isEmpty y isNotEmptyInvertir una listaAñadir a una lista: insertEliminación en listas: removeWhereBúsqueda en una lista: indexOfOrdenar una listaMezclar una listaResumen - Organizador de listas4Manipulación avanzada de mapas
Iterar sobre un mapaComprobación de claves y valoresPropiedades del mapa: keys y valuesAdición condicional: putIfAbsentEliminar entradas de un mapaMapas anidadosResumen - Actualización de inventario2Operaciones funcionales con listas
Transformar con 'map'Filtrar con 'where'Uso de '.toList()'Comprobar condiciones con 'any'Condiciones con 'every'Búsqueda con 'firstWhere'Resumen - Filtrado de datos5Proyecto: Calculadora de carrito de compras
Configuración del proyectoAgregar artículos al carrito3Conjuntos
¿Qué es un Conjunto?Crear un ConjuntoAñadir y eliminar elementos de un ConjuntoComprobar elementos en un ConjuntoConvertir una lista en un ConjuntoUnión de ConjuntosIntersección de ConjuntosDiferencia de ConjuntosResumen - Lista de invitados únicaPractica por tu cuenta: Compilador de Dart online