Golang 迭代字典元素
在Golang中,字典类似于一个映射,它由一组键值对组成,每个值都有一个唯一的键。值可以是任何类型,键可以是与之相似的任何类型,如字符串或整数。我们可以使用内置的“make”函数创建一个空映射,然后添加、检索或更新值。我们将在这里使用两个示例来迭代字典的元素,第一个示例中将使用循环来迭代元素,而第二个示例中将使用切片来迭代元素。
方法1:使用for循环和range关键字
此方法创建一个具有三个键值对的字典dict_value,然后使用for循环和range关键字迭代字典的组件。在每次循环迭代期间,将当前元素的键和值分配给相应的变量,然后将它们报告给控制台。
语法
map[strings]
地图实现了一个无序的键值对集合。地图的键是全不同的,用于获取它们对应的值。它们使用关键字“map”后跟键类型在方括号中,然后是值类型声明,并可以使用内置的“make”函数创建。方括号语法可用于添加、检索或更新键值对。动态地图的大小可以根据需要增加或减少。在Go编程中,地图是一种常见的数据结构,用于说明键和值之间的关系。
步骤
- 第1步 \- 创建一个程序包“main”,并在程序中声明“fmt”(格式化包)包,其中“main”生成可执行代码,而“fmt”帮助格式化输入和输出。
-
第2步 \- 创建一个主函数,在该函数中使用map函数创建一个名为dict_values的字典,其中包含键值对。
-
第3步 \- 使用range关键字作为for循环的初始值,以迭代字典的项目。
-
第4步 \- 在每次循环迭代中,将当前元素的键和值分配给相关的变量。
-
第5步 \- 使用fmt.Println()函数将当前元素的键和值打印到控制台,其中ln表示换行。
-
第6步 \- 重复步骤3和4,直到处理完字典中的每个元素。
示例
在这个示例中,我们将使用循环和range关键字,以及迭代字典的元素。让我们看看代码如何执行。
package main
import "fmt"
func main() {
// Define a dictionary
dict_values := map[string]int{
"Apple": 100,
"Mangoes": 200,
"Banana": 60,
}
fmt.Println("The dictionary is iterated as follows:")
// Iterate through the elements of the dictionary
for key, value := range dict_values {
fmt.Println(key, value)
}
}
输出
The dictionary is iterated as follows:
Apple 100
Mangoes 200
Banana 60
方法2:使用切片
在这个方法中,我们首先使用for循环和range关键字来切割字典的键。然后,使用一个额外的for循环和索引操作符[],我们循环遍历键来获得相应的值。最后,我们将每个元素的键和值报告到控制台。
语法
func append(slice, element_1, element_2…, element_N) []T
append函数用于向数组切片添加值。它接受多个参数。第一个参数是我们希望添加值的数组,接着是要添加的值。然后该函数返回包含所有值的最终切片。
步骤
- 第1步 - 创建一个main包并在程序中声明fmt(格式化包)包,其中main生成可执行代码,fmt帮助格式化输入和输出。
-
第2步 - 创建一个main函数,并在该函数中使用map函数创建一个包含键值对的字典dict_values。
-
第3步 - 通过使用range关键字初始化一个for循环来迭代字典的键并生成键的切片。
-
第4步 - 设置第二个for循环并开始迭代新形成的切片中的键。
-
第5步 - 使用索引运算符[]从字典中检索每个键对应的值。
-
第6步 - 使用fmt.Println()函数将每个元素的键和值打印到控制台,其中ln表示换行。
-
第7步 - 对于切片中的每个键,重复步骤4和5,直到处理完所有元素。
示例
在这个示例中,使用切片来迭代字典的元素。让我们看一下代码。
package main
import "fmt"
func main() {
// Define a dictionary
dict_values := map[string]int{
"Apple": 100,
"Mangoes": 200,
"Banana": 60,
}
// Get a slice of the keys from the dictionary
slice := make([]string, 0, len(dict_values))
for key := range dict_values {
slice = append(slice, key)
}
fmt.Println("The dictionary is iterated as follows:")
// Iterate through the keys and get the corresponding values
for _, key := range slice {
value := dict_values[key]
fmt.Println(key, value)
}
}
输出
The dictionary is iterated as follows:
Apple 100
Mangoes 200
Banana 60
结论
我们执行了通过两种方法迭代字典元素的程序。在第一种方法中,我们使用了for循环和range关键字;在第二个示例中,我们使用切片来迭代字典的元素。