Maison > développement back-end > Golang > Comment trier une Go Map par ses valeurs ?

Comment trier une Go Map par ses valeurs ?

Patricia Arquette
Libérer: 2024-12-20 07:56:13
original
182 Les gens l'ont consulté

How to Sort a Go Map by its Values?

Tri d'une carte par ses valeurs dans Go

Tri d'une carte par ses valeurs dans Go nécessite une implémentation personnalisée de l'interface de tri. Voici une solution qui implémente un type PairList et définit les fonctions nécessaires au tri :

<br>func RankByWordCount(wordFrequencies map[string]int) PairList {<br> pl := make(PairList, len(wordFrequencies))<br> i := 0<br> pour k, v := range wordFrequencies {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">pl[i] = Pair{k, v}
i++
Copier après la connexion

}
sort.Sort(sort.Reverse(pl))
return pl
}

type Pair struct {
Chaîne de clé
Valeur int
>

type PairList []Pair

func (p PairList) Len() int { return len(p) >
func (p PairList) Less(i, j int) bool { return p[i].Value < ; p[j].Value }
func (p PairList) Swap(i, j int){ p[i], p[j] = p[j], p[i] }

En utilisant la fonction RankByWordCount, vous pouvez trier une carte comme suit :

<br>wordFrequencies := map[string]int{<br> "hello": 10,<br> "foo": 20,<br> "bar": 20 ,<br>}</p>
<p>paires triées := RankByWordCount(wordFrequencies)</p>
<p>for _, pair := range sortedPairs {<br> fmt.Println(pair.Key, pair.Value)<br>}<br>

Sortie :


foo 20
bar 20
bonjour 10

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal