为了账号安全,请及时绑定邮箱和手机立即绑定

如何按顺序遍历Golang中的地图?

如何按顺序遍历Golang中的地图?

Go
慕容708150 2021-06-13 16:00:02
请看下面我的地图var romanNumeralDict map[int]string = map[int]string{  1000: "M",  900 : "CM",  500 : "D",  400 : "CD",  100 : "C",  90  : "XC",  50  : "L",  40  : "XL",  10  : "X",  9   : "IX",  5   : "V",  4   : "IV",  1   : "I",}我希望按密钥大小的顺序遍历此地图  for k, v := range romanNumeralDict {    fmt.Println("k:", k, "v:", v)  }但是,这会打印出来k: 1000 v: Mk: 40 v: XLk: 5 v: Vk: 4 v: IVk: 900 v: CMk: 500 v: Dk: 400 v: CDk: 100 v: Ck: 90 v: XCk: 50 v: Lk: 10 v: Xk: 9 v: IXk: 1 v: I有没有办法按照密钥大小的顺序打印出来,所以我想像这样循环遍历这张地图k:1K:4K:5K:9k:10等等...非常感谢您的帮助!
查看完整描述

3 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

收集所有键,对它们进行排序并按键迭代您的地图,如下所示:


keys := make([]int, 0)

for k, _ := range romanNumeralDict {

    keys = append(keys, k)

}

sort.Ints(keys)

for _, k := range keys {

    fmt.Println(k, romanNumeralDict[k])

}


查看完整回答
反对 回复 2021-06-28
  • 3 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信