Golang怎么将Map的键值对调
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,这篇文章主要介绍"Golang怎么将Map的键值对调"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Golang怎么将Map的键值对调"文章能帮助大家解决问题。
千家信息网最后更新 2025年01月21日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, }
具体代码如下(示例):
// 键值对调 // 传入参数: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 数据类型的前奏。
PS:golang 无序的键值对集合map
package mainimport "fmt"func main() { /*创建集合并初始化 */ countryCapitalMap := make(map[string]string) /* map插入key - value对,各个国家对应的首都 */ countryCapitalMap [ "France" ] = "巴黎" countryCapitalMap [ "Italy" ] = "罗马" countryCapitalMap [ "Japan" ] = "东京" countryCapitalMap [ "India " ] = "新德里" /*使用键输出value值 */ for country := range countryCapitalMap { 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的键值对调"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
多个
类型
首都
代码
知识
相同
参数
容量
效果
数据
示例
程序
行业
张三
李四
王五
不同
实用
元素
内容
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
金融网络安全宣传展板内容
SAP界面未显示数据库
网络技术cidr是什么
dell服务器默认raid0
质量追溯软件开发
宁波服务器数据恢复
科技创新板互联网
5g网络技术最新信息
web服务器源代码
海康安全服务器
与网络安全相关的技术
宁波软件开发新感觉建站
中国电信的网络安全
网络安全势能榜
网络安全深似海
数据中心服务器供电拆解
中国网络技术集团公司
网络安全心得体会高中生
wifi网络安全许可
上面服务器
国泰安数据库的英文缩写
单机软件一般用什么数据库
本机未发现可用的数据库实体
空地互联网络科技股份招聘
支持软件开发的各个环节控制
两个dbf数据库替换命令
网络安全活动启动仪式发言稿
云呼叫中心软件开发
张家口软件开发工资
计算机网络技术就业前景工资待遇