【GO】Map练习题

创建和初始化map

题目描述

请使用两种不同的方法创建并初始化一个存储学生成绩的map,具体要求如下:

  1. map的键值对类型 :键为string类型(学生姓名),值为int类型(成绩)

  2. 包含的学生数据

    • 张三:85分

    • 李四:92分

    • 王五:78分

  3. 两种不同的初始化方式

    • 方式1:使用map字面量直接初始化

    • 方式2:使用make函数创建后再赋值

输出示例

方式1:map[张三:85 李四:92 王五:78]

方式2:map[张三:85 李四:92 王五:78]

实现代码

Go 复制代码
package main

import "fmt"

func main() {
    // 方式1:使用字面量直接创建并初始化
    map1 := map[string]int{
        "张三": 85,
        "李四": 92,
        "王五": 78,
    }
    
    // 方式2:使用make创建,然后逐个赋值
    map2 := make(map[string]int)
    map2["张三"] = 85
    map2["李四"] = 92
    map2["王五"] = 78
    
    // 输出两种方式的结果
    fmt.Printf("方式1:%v\n", map1)
    fmt.Printf("方式2:%v\n", map2)
}

访问map元素

题目描述

创建map存储商品价格:{"苹果":5.5, "香蕉":3.2, "橙子":4.8, "葡萄":12.5},输出指定商品的价格。

输出示例

苹果价格:5.5元

香蕉价格:3.2元

葡萄价格:12.5元

实现代码

Go 复制代码
package main

import "fmt"

func main() {
    prices := map[string]float64{
        "苹果": 5.5,
        "香蕉": 3.2,
        "橙子": 4.8,
        "葡萄": 12.5,
    }
    
    fmt.Printf("苹果价格:%.1f元\n", prices["苹果"])
    fmt.Printf("香蕉价格:%.1f元\n", prices["香蕉"])
    fmt.Printf("葡萄价格:%.1f元\n", prices["葡萄"])
}

删除元素

题目描述

创建map存储城市人口:{"北京":2189, "上海":2487, "广州":1874, "深圳":1768},删除广州的数据,输出删除后的map。

输出示例

原map:map[北京:2189 上海:2487 广州:1874 深圳:1768]

删除广州后:map[北京:2189 上海:2487 深圳:1768]

实现代码

Go 复制代码
package main

import "fmt"

func main() {
    cities := map[string]int{
        "北京": 2189,
        "上海": 2487,
        "广州": 1874,
        "深圳": 1768,
    }
    
    fmt.Printf("原map:%v\n", cities)
    
    delete(cities, "广州")
    
    fmt.Printf("删除广州后:%v\n", cities)
}

图书管理系统

题目描述

创建一个图书管理系统,使用map存储图书信息(书号->书名)。完成以下操作:

  1. 初始化添加3本书:{"B001":"Go语言入门", "B002":"Python编程", "B003":"Java核心技术"}

  2. 查询并输出B002的书名

  3. 修改B003的书名为"Java高级编程"

  4. 添加新书B004:"数据库原理"

  5. 删除B001

  6. 输出最终所有图书

输出示例

初始图书:map[B001:Go语言入门 B002:Python编程 B003:Java核心技术]

查询B002:Python编程

修改后:map[B001:Go语言入门 B002:Python编程 B003:Java高级编程]

添加B004后:map[B001:Go语言入门 B002:Python编程 B003:Java高级编程 B004:数据库原理]

删除B001后:map[B002:Python编程 B003:Java高级编程 B004:数据库原理]

实现代码

Go 复制代码
package main

import "fmt"

func main() {
    // 1. 初始化图书
    books := map[string]string{
        "B001": "Go语言入门",
        "B002": "Python编程",
        "B003": "Java核心技术",
    }
    fmt.Printf("初始图书:%v\n", books)
    
    // 2. 查询B002
    fmt.Printf("查询B002:%s\n", books["B002"])
    
    // 3. 修改B003
    books["B003"] = "Java高级编程"
    fmt.Printf("修改后:%v\n", books)
    
    // 4. 添加B004
    books["B004"] = "数据库原理"
    fmt.Printf("添加B004后:%v\n", books)
    
    // 5. 删除B001
    delete(books, "B001")
    fmt.Printf("删除B001后:%v\n", books)
}
相关推荐
XMYX-011 小时前
37 - Go env 环境变量:配置管理与运行时控制
开发语言·golang
姚不倒17 小时前
Go 进阶实战:实现泛型数据验证器
云原生·golang
XMYX-018 小时前
36 - Go exec 执行命令
开发语言·golang
lolo大魔王18 小时前
Go 语言 HTTP 协议与 RESTful API 实训全解(理论 + 实战 + 规范)
http·golang·restful
一只小逸白19 小时前
LeetCode Go 常用函数速查表
linux·leetcode·golang
LCG元19 小时前
【Go后端开发】从 0 到生产级:高性能分布式网关全实现 + 接口限流熔断降级实战
分布式·golang·wpf
姚不倒1 天前
Go语言进阶:接口、错误处理与并发编程(goroutine/channel/context)
云原生·golang
宇明一不急2 天前
go 链表 (标准库实现)
开发语言·链表·golang
~|Bernard|2 天前
GO语言中哪些类型是可比较类型的(==和!=)
开发语言·后端·golang
比特森林探险记2 天前
底层数据结构分析 go 语言中的 slice map channel interface
数据结构·golang·哈希算法