var scoreMap = make(map[string]int, 200) for i := 0; i < 100; i++ { key := fmt.Sprintf("student%02d", i); //生成stu开头的字符串 value := rand.Intn(100) //生成0~99的随机数 scoreMap[key] = value }
//把map的key取出存放到切片中 keyslice := make([]string, 0, 100) for key := range scoreMap{ keyslice = append(keyslice, key) }
//对切片进行排序 sort.Strings(keyslice) for _, name := range keyslice{ fmt.Printf("%s : %d\n", name, scoreMap[name]) } }
1、写一个程序,统计一个字符串中每个单词出现的次数。比如:”how do you do”中how=1 do=2 you=1。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
funchomework() { str := "how do you do" split := strings.Split(str, " ") // 根据空格分隔字符串为切片 countMap := make(map[string]int, 5) // 使用map统计单词出现数量,key:单词 value: 数量 for _, value := range split { // 遍历所有单词 v, ok := countMap[value] //判断map是否存在该单词 if ok { countMap[value] = v + 1//存在则数量加一 } else { countMap[value] = 1// 不存在则放入map,设置数量为1 } } fmt.Println(countMap) }
2、观察下面代码,写出最终的打印结果。
1 2 3 4 5 6 7 8 9 10 11
funcmain() { type Map map[string][]int m := make(Map) s := []int{1, 2} s = append(s, 3) fmt.Printf("%+v\n", s) m["q1mi"] = s s = append(s[:1], s[2:]...) fmt.Printf("%+v\n", s) fmt.Printf("%+v\n", m["q1mi"]) }