Go 语言程序遍历字典元素


在 Go 语言中,字典类似于映射,它是一组键值对,每个值都有一个唯一的键。值可以是任何类型,键可以是任何类似的类型,例如字符串或整数。我们可以使用内置的“make”函数构建一个空映射,然后添加、检索或更新值。我们将在这里使用两个示例来遍历字典的元素,其中第一个示例将使用循环遍历元素,而下一个示例将使用切片遍历元素。

方法 1:使用 for 循环和 range 关键字

此方法创建一个名为 dict_value 的字典,其中包含三个键值对,然后使用 for 循环和 range 关键字遍历字典的元素。在每次循环迭代期间,当前元素的键和值将分配给相应的变量,然后将其输出到控制台。

语法

map[strings]

映射实现了一个无序的键值对集合。映射的键都是不同的,用于获取它们对应的值。它们使用关键字“map”后跟方括号中的键类型和值类型来声明,并且可以使用内置的“make”函数生成。方括号语法可用于添加、检索或更新键值对。动态映射的大小可以根据需要增加或减少。在 Go 编程中,映射是一种常见的数据结构,用于说明键和值之间的关系。

算法

  • 步骤 1 − 创建一个 package main 并声明程序中的 fmt(格式化包)包,其中 main 生成可执行代码,而 fmt 帮助格式化输入和输出。

  • 步骤 2 − 创建一个 main 函数,并在该函数中使用 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 − 创建一个 package 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 关键字,在第二个示例中,我们使用了切片来遍历字典的元素。

更新于: 2023年2月22日

1K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告