En programmation informatique, la sommation catégorielle est un problème courant, c'est-à-dire classer un ensemble de nombres en fonction de leurs attributs et additionner les nombres dans chaque catégorie. Ce problème a des applications dans de nombreux domaines, tels que les statistiques, l'exploration de données, l'analyse de données, etc. Dans cet article, nous présenterons comment implémenter la sommation catégorielle à l'aide de Golang.
Tout d'abord, nous devons définir une structure de données pour représenter un nombre, contenant deux attributs, à savoir la valeur et la catégorie. Dans Golang, nous pouvons utiliser des structures pour implémenter cette structure de données. Le code est le suivant :
type Data struct { value float64 category string }
Ensuite, nous devons créer une fonction qui classe l'ensemble de données d'entrée en fonction de ses catégories et trie les nombres dans chaque catégorie. . Cette fonction doit accepter une liste de données en entrée et renvoyer un dictionnaire où les clés sont les catégories et les valeurs sont la somme des nombres dans cette catégorie. En Golang, nous pouvons utiliser le type map pour implémenter ce dictionnaire. Le code est le suivant :
func sumByCategory(dataList []Data) map[string]float64 { sumsByCategory := make(map[string]float64) for _, data := range dataList { sumsByCategory[data.category] += data.value } return sumsByCategory }
Cette fonction crée d'abord une carte vide pour enregistrer la somme des nombres dans chaque catégorie. Ensuite, parcourez la liste des données d’entrée et ajoutez chaque nombre à la somme de la catégorie correspondante. Enfin, renvoyez la carte qui contient la somme des nombres dans chaque catégorie.
Ce qui suit est un exemple de programme complet pour tester la fonction que nous avons implémentée ci-dessus :
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) }
L'exécution de ce programme produira les résultats suivants :
map[A:3 B:5.5 C:9.6]
Ce résultat montre que notre fonction de somme catégorielle additionne correctement les données d'entrée classées en fonction de leurs catégories , et les nombres dans chaque catégorie ont été additionnés.
Enfin, il est important de noter que dans des problèmes réels, les données peuvent être très volumineuses et ne peuvent pas toutes être stockées en mémoire. Dans ce cas, nous pouvons utiliser un algorithme de tri externe pour trier les données en morceaux, puis effectuer une sommation de classification. Cet algorithme impliquera davantage de fonctions intégrées à Golang et de bibliothèques externes et dépasse le cadre de cet article.
En bref, la sommation de classification est un problème courant et est très facile à mettre en œuvre dans Golang. En utilisant les types struct et map de Golang, nous pouvons facilement classer un ensemble de données en fonction de ses attributs et additionner les nombres dans chaque catégorie.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!