Zusammenfassung – Datenfilterung
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy. Lektion 16 von 65.
Aufgabe
EinfachErstellen Sie ein Programm, das eine Datenanalyse-Pipeline verwaltet, indem es numerische Datensätze filtert, transformiert und verarbeitet. Ihr Programm sollte:
- Einen String einlesen, der den Namen des Datensatzes darstellt
- Mehrere Ganzzahlen einlesen, die Rohdatenwerte darstellen (die Eingabe endet, wenn Sie
-1erhalten) - Eine Ganzzahl einlesen, die den Mindestschwellenwert für die Filterung darstellt
- Die Methode
where()verwenden, um Werte zu filtern, die größer als der Schwellenwert sind - Die Methode
map()verwenden, um jeden gefilterten Wert zu quadrieren - Die Methode
toList()verwenden, um das Endergebnis in eine Liste umzuwandeln - Die Ergebnisse der Datenverarbeitung in dem unten gezeigten exakten Format ausgeben
Wenn zum Beispiel der Name des Datensatzes "Sales Data" ist, die Rohwerte 2, 5, 1, 8, 3, 6 sind und der Schwellenwert 3 ist, sollte Ihr Programm Folgendes ausgeben:
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 processedWenn der Name des Datensatzes "Temperature Readings" ist, die Rohwerte 1, 2 sind und der Schwellenwert 5 ist, sollte Ihr Programm Folgendes ausgeben:
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 processedWenn der Name des Datensatzes "Performance Metrics" ist, die Rohwerte 4, 7, 9 sind und der Schwellenwert 2 ist, sollte Ihr Programm Folgendes ausgeben:
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 processedIhr Programm muss die Operationen in dieser exakten Reihenfolge verketten: Verwenden Sie zuerst where(), um Werte zu filtern, die größer als der Schwellenwert sind, verwenden Sie dann map(), um jeden gefilterten Wert zu quadrieren, und verwenden Sie schließlich toList(), um das Ergebnis in eine Liste umzuwandeln. Die Zwischenergebnisse sollten das Iterable-Format in runden Klammern zeigen, während die endgültige Liste im Format mit eckigen Klammern angezeigt werden sollte.
Probier es selbst
import 'dart:io';
void main() {
// Datensatznamen lesen
String? datasetName = stdin.readLineSync();
// Rohdatenwerte lesen, bis -1 eingegeben wird
List<int> rawData = [];
while (true) {
int value = int.parse(stdin.readLineSync()!);
if (value == -1) break;
rawData.add(value);
}
// Schwellenwert lesen
int threshold = int.parse(stdin.readLineSync()!);
// Anfängliche Informationen anzeigen
print('Dataset: $datasetName');
print('Raw data: $rawData');
print('Threshold: $threshold');
print('Filtering values > $threshold');
// TODO: Schreiben Sie Ihren Code unten
// Verwenden Sie where(), um Werte größer als den Schwellenwert zu filtern
// Verwenden Sie map(), um jeden gefilterten Wert zu quadrieren
// Verwenden Sie toList(), um das Ergebnis in eine Liste umzuwandeln
// Ergebnisse im erforderlichen Format ausgeben
// Denken Sie daran, gefilterte Werte im Klammerformat anzuzeigen
// Quadrierte Werte im Klammerformat anzeigen
// Final verarbeitete Daten im Format mit eckigen Klammern anzeigen
// Nachricht über abgeschlossene Verarbeitung mit Anzahl ausgeben
}Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Listenmanipulation
Listen-Eigenschaften: first & lastListen-Status: isEmpty & isNotEmptyEine Liste umkehrenHinzufügen zu einer Liste: insertElemente aus Liste entfernen: removeWhereSuchen in einer Liste: indexOfEine Liste sortierenEine Liste mischenZusammenfassung – Listen-Organizer4Fortgeschrittene Map-Manipulation
Über eine Map iterierenPrüfen auf Schlüssel und WerteMap-Eigenschaften: keys & valuesBedingtes Hinzufügen: putIfAbsentEinträge aus einer Map entfernenVerschachtelte MapsRückblick – Inventar-Update7Fortgeschrittene Funktionen
Anonyme FunktionenFunktionen als Argumente übergebenClosures verstehenEinführung in die RekursionRekursive Funktion: CountdownRekursive Funktion: FakultätZusammenfassung – List Processor10Abschluss-Herausforderungen
Herausforderung: NotensortiererHerausforderung: VokalzählerHerausforderung: FizzBuzz2Funktionale Listenoperationen
Transformieren mit 'map'Filtern mit 'where''.toList()' verwendenBedingungen prüfen mit 'any'Bedingungen mit 'every'Suchen mit 'firstWhere'Zusammenfassung – Datenfilterung3Sets
Was ist ein Set?Ein Set erstellenHinzufügen und Entfernen in SetsPrüfen auf Elemente in einem SetEine Liste in ein Set umwandelnSet-VereinigungSet-SchnittmengeSet-DifferenzRückblick – Einzigartige GästelisteÜbe selbstständig: Online-Dart-Compiler