In der Computerprogrammierung ist die Klassifikationssummierung ein häufiges Problem, d. h. die Klassifizierung einer Reihe von Zahlen nach ihren Attributen und die Summierung der Zahlen innerhalb jeder Kategorie. Dieses Problem findet in vielen Bereichen Anwendung, beispielsweise in der Statistik, dem Data Mining, der Datenanalyse usw. In diesem Artikel stellen wir vor, wie man die kategoriale Summierung mit Golang implementiert.
Zuerst müssen wir eine Datenstruktur definieren, um eine Zahl darzustellen, die zwei Attribute enthält, nämlich numerischen Wert und Kategorie. In Golang können wir Strukturen verwenden, um diese Datenstruktur zu implementieren. Der Code lautet wie folgt:
type Data struct { value float64 category string }
Als nächstes müssen wir eine Funktion erstellen, um den Eingabedatensatz nach seiner Kategorie zu klassifizieren und die Summe zu klassifizieren die Zahlen innerhalb jeder Kategorie. Diese Funktion sollte eine Liste von Daten als Eingabe akzeptieren und ein Wörterbuch zurückgeben, in dem die Schlüssel Kategorien und die Werte die Summe der Zahlen innerhalb dieser Kategorie sind. In Golang können wir den Kartentyp verwenden, um dieses Wörterbuch zu implementieren. Der Code lautet wie folgt:
func sumByCategory(dataList []Data) map[string]float64 { sumsByCategory := make(map[string]float64) for _, data := range dataList { sumsByCategory[data.category] += data.value } return sumsByCategory }
Diese Funktion erstellt zunächst eine leere Karte, um die Summe der Zahlen in jeder Kategorie zu speichern. Anschließend durchlaufen Sie die Eingabedatenliste und addieren jede Zahl zur Summe der entsprechenden Kategorie. Geben Sie schließlich die Karte zurück, die die Summe der Zahlen innerhalb jeder Kategorie enthält.
Das Folgende ist ein vollständiges Beispielprogramm zum Testen der oben implementierten Funktion:
package main import "fmt" type Data struct { value float64 category string } func sumByCategory(dataList []Data) map[string]float64 { sumsByCategory := make(map[string]float64) for _, data := range dataList { sumsByCategory[data.category] += data.value } return sumsByCategory } func main() { dataList := []Data{ {2.0, "A"}, {3.2, "B"}, {4.5, "C"}, {1.8, "A"}, {2.3, "B"}, {5.1, "C"}, } sumsByCategory := sumByCategory(dataList) fmt.Println(sumsByCategory) }
Beim Ausführen dieses Programms werden die folgenden Ergebnisse ausgegeben:
map[A:3 B:5.5 C:9.6]
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Klassifizierungssummierung mit Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!