Heim >Backend-Entwicklung >Golang >Wie sortiere ich eine Go-Map nach ihren Werten?

Wie sortiere ich eine Go-Map nach ihren Werten?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-20 07:56:13225Durchsuche

How to Sort a Go Map by its Values?

Sortieren einer Karte nach ihren Werten in Go

Das Sortieren einer Karte nach ihren Werten in Go erfordert eine benutzerdefinierte Implementierung der Sortierschnittstelle. Hier ist eine Lösung, die einen PairList-Typ implementiert und notwendige Funktionen zum Sortieren definiert:

<br>func rankByWordCount(wordFrrequencies map[string]int) PairList {<br> pl := make(PairList, len(wordFrequences))<br> i := 0<br> für k, v := Bereich WortFrequenzen {</p>
<pre class="brush:php;toolbar:false">pl[i] = Pair{k, v}
i++

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

type Pair struct {
Schlüsselzeichenfolge
Wert int
}

Typ 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] }

Mit der Funktion rankByWordCount können Sie eine Karte sortieren nach folgt:

<br>wordFrequences := map[string]int{<br> "hello": 10,<br> "foo": 20,<br> "bar": 20 ,<br>}</p>
<p>sortedPairs := rankByWordCount(wordFrequences)</p>
<p>für _, Paar := Bereich sortiertPairs {<br> fmt.Println(pair.Key, pair.Value)<br>}<br>

Ausgabe:

<br>foo 20<br>bar 20<br>hello 10<br>

Das obige ist der detaillierte Inhalt vonWie sortiere ich eine Go-Map nach ihren Werten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn