文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Golang怎么将Map的键值对调

2023-06-29 06:53

关注

这篇文章主要介绍“Golang怎么将Map的键值对调”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Golang怎么将Map的键值对调”文章能帮助大家解决问题。

一、Map是什么?

map是一堆键值对的未排序集合,类似Python中字典的概念,它的格式为map[keyType]valueType,是一个key-value的hash结构。map的读取和设置也类似slice一样,通过key来操作,只是slice的index只能是int类型,而map多了很多类型,可以是int,可以是string及所有完全定义了==与!=操作的类型

二、详细代码

1.对调键值

Map原数据:

moMap := map[string]int{        "张三": 21, "李四": 56, "王五": 23,        "赵六": 45, "周七": 32, "陈八": 21,        "许九": 21, "王十": 16, "吴三": 45,        "郑六": 23, "许七": 43, "李三": 16,    }

具体代码如下(示例):

// 键值对调 // 传入参数:moMap map[string]int// 返回值: map[int][]stringfunc reserveMap(moMap map[string]int) map[int][]string {    // 建立一个 resMap 与 moMap 容量相同    // 由于对调可能存在多个值对应一个Key    // string 需转为 切片[]string    resMap := make(map[int][]string, len(moMap))    // 通过for range 遍历 moMap    // k 即为 Key v 即为 Value    for k, v := range moMap {        // 由于现在对应为 切片[]string        // 使用 append 达到添加多个的效果        resMap[v] = append(resMap[v], k)    }        // 程序结束    return resMap}

2.进行调用

详细代码如下(示例):

package mainimport (    "fmt")func main() {    moMap := map[string]int{        "张三": 21, "李四": 56, "王五": 23,        "赵六": 45, "周七": 32, "陈八": 21,        "许九": 21, "王十": 16, "吴三": 45,        "郑六": 23, "许七": 43, "李三": 16,    }    // 打印对调前    for k, v := range moMap {        fmt.Printf("Key: %v, Value: %v \n", k, v)    }    resMap := reserveMap(moMap)    fmt.Println("reserve:")    // 打印对调后    for k, v := range resMap {        fmt.Printf("Key: %v, Value: %v \n", k, v)    }}// 键值对调// 传入参数:moMap map[string]int// 返回值: map[int][]stringfunc reserveMap(moMap map[string]int) map[int][]string {    // 建立一个 resMap 与 moMap 容量相同    // 由于对调可能存在多个值对应一个Key    // string 需转为 切片[]string    resMap := make(map[int][]string, len(moMap))    // 通过for range 遍历 moMap    // k 即为 Key v 即为 Value    for k, v := range moMap {        // 由于现在对应为 切片[]string        // 使用 append 达到添加多个的效果        resMap[v] = append(resMap[v], k)    }    // 程序结束    return resMap}

Golang怎么将Map的键值对调

总结

键值的简单调换是熟悉Golang Map 数据类型的前奏。

PS:golang 无序的键值对集合map

package mainimport "fmt"func main() {         countryCapitalMap := make(map[string]string)        countryCapitalMap [ "France" ] = "巴黎"    countryCapitalMap [ "Italy" ] = "罗马"    countryCapitalMap [ "Japan" ] = "东京"    countryCapitalMap [ "India " ] = "新德里"        for country := range countryCapitalMap {        fmt.Println(country, "首都是", countryCapitalMap [country])    }        capital, ok := countryCapitalMap [ "American" ]             if (ok) {        fmt.Println("American 的首都是", capital)    } else {        fmt.Println("American 的首都不存在")    }}

关于“Golang怎么将Map的键值对调”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯