Golang怎么将Map的键值对调
这篇文章主要介绍“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,}
具体代码如下(示例):
//键值对调//传入参数:moMapmap[string]int//返回值:map[int][]stringfuncreserveMap(moMapmap[string]int)map[int][]string{//建立一个resMap与moMap容量相同//由于对调可能存在多个值对应一个Key//string需转为切片[]stringresMap:=make(map[int][]string,len(moMap))//通过forrange遍历moMap//k即为Keyv即为Valuefork,v:=rangemoMap{//由于现在对应为切片[]string//使用append达到添加多个的效果resMap[v]=append(resMap[v],k)}//程序结束returnresMap}2.进行调用
详细代码如下(示例):
packagemainimport("fmt")funcmain(){moMap:=map[string]int{"张三":21,"李四":56,"王五":23,"赵六":45,"周七":32,"陈八":21,"许九":21,"王十":16,"吴三":45,"郑六":23,"许七":43,"李三":16,}//打印对调前fork,v:=rangemoMap{fmt.Printf("Key:%v,Value:%v\n",k,v)}resMap:=reserveMap(moMap)fmt.Println("reserve:")//打印对调后fork,v:=rangeresMap{fmt.Printf("Key:%v,Value:%v\n",k,v)}}//键值对调//传入参数:moMapmap[string]int//返回值:map[int][]stringfuncreserveMap(moMapmap[string]int)map[int][]string{//建立一个resMap与moMap容量相同//由于对调可能存在多个值对应一个Key//string需转为切片[]stringresMap:=make(map[int][]string,len(moMap))//通过forrange遍历moMap//k即为Keyv即为Valuefork,v:=rangemoMap{//由于现在对应为切片[]string//使用append达到添加多个的效果resMap[v]=append(resMap[v],k)}//程序结束returnresMap}
总结键值的简单调换是熟悉Golang Map 数据类型的前奏。
PS:golang 无序的键值对集合mappackagemainimport"fmt"funcmain(){/*创建集合并初始化*/countryCapitalMap:=make(map[string]string)/*map插入key-value对,各个国家对应的首都*/countryCapitalMap["France"]="巴黎"countryCapitalMap["Italy"]="罗马"countryCapitalMap["Japan"]="东京"countryCapitalMap["India"]="新德里"/*使用键输出value值*/forcountry:=rangecountryCapitalMap{fmt.Println(country,"首都是",countryCapitalMap[country])}/*查看元素在集合中是否存在*/capital,ok:=countryCapitalMap["American"]/*如果确定是真实的,则存在,否则不存在*//*fmt.Println(capital)*//*fmt.Println(ok)*/if(ok){fmt.Println("American的首都是",capital)}else{fmt.Println("American的首都不存在")}}
关于“Golang怎么将Map的键值对调”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。