golang基础(17.字典遍历排序)
字典遍历
使用for range 可以对字典进行遍历。
package main
import "fmt"
func main() {
map1 := map[string]int{
"one": 1,
"two": 2,
"three": 3,
}
for k, v := range map1 {
fmt.Println(k, v)
}
}
键值对调
键值对调指交换字典的键和值。
package main
import "fmt"
func main() {
map1 := map[string]int{
"one": 1,
"two": 2,
"three": 3,
}
for k, v := range map1 {
fmt.Println(k, v)
}
invMap := make(map[int]string, 3)
for k, v := range map1 {
invMap[v] = k
}
for k, v := range invMap {
fmt.Println(k, v)
}
}
字典排序
map是一个无序集合,如果你想要对字典进行排序,可以通过分别为字典的键和值创建切片,然后通过对切片进行排序来实现。
package main
import (
"fmt"
"sort"
)
func main() {
map1 := map[string]int{
"one": 1,
"two": 2,
"three": 3,
}
keys := make([]string, 3)
for k := range map1 {
keys = append(keys, k)
}
sort.Strings(keys)
for _, v := range keys {
fmt.Println(v, map1[v])
}
invMap := make(map[int]string, 3)
for k, v := range map1 {
invMap[v] = k
}
keys2 := make([]int, 3)
for k, _ := range invMap {
keys2 = append(keys2, k)
}
sort.Ints(keys2)
for _, v := range keys2 {
fmt.Println(v, invMap[v])
}
}
我们在对切片进行排序时,使用了 Go 语言内置的 sort 包,这个包提供了一系列对切片和用户自定义集合进行排序的函数。