gpt4 book ai didi

sorting - 如何按其值对 Map[string]int 进行排序?

转载 作者:IT老高 更新时间:2023-10-28 12:58:05 29 4
gpt4 key购买 nike

鉴于此代码块

map[string]int {"hello":10, "foo":20, "bar":20}

我想打印出来

foo, 20
bar, 20
hello, 10

按照从高到低的顺序

最佳答案

在 Andrew Gerrand 的 Golang-nuts 上找到答案

您可以通过编写 len/less/swap 函数来实现排序接口(interface)

func rankByWordCount(wordFrequencies map[string]int) PairList{
pl := make(PairList, len(wordFrequencies))
i := 0
for k, v := range wordFrequencies {
pl[i] = Pair{k, v}
i++
}
sort.Sort(sort.Reverse(pl))
return pl
}

type Pair struct {
Key string
Value 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] }

原帖请看这里https://groups.google.com/forum/#!topic/golang-nuts/FT7cjmcL7gw

关于sorting - 如何按其值对 Map[string]int 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18695346/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com