golang for 根据key对二维切片分组

作者: adm 分类: 未分类 发布时间: 2024-01-10

在Go语言中,你可以使用for循环和map数据结构来根据键(key)对二维切片进行分组。下面是一个示例代码,演示了如何在Go中使用for循环和map来根据键对二维切片进行分组:

package main

import "fmt"

func main() {
	// 假设有一个二维整数切片
	numbers := [][]int{
		{1, 2, 3},
		{4, 5, 6},
		{7, 8, 9},
		{10, 11, 12},
	}

	// 定义一个空的map用于存储分组后的数据
	groups := make(map[int][][]int)

	// 使用循环对元素进行分组
	for _, nums := range numbers {
		key := nums[0]
		groups[key] = append(groups[key], nums)
	}

	// 打印分组结果
	for key, group := range groups {
		fmt.Printf("Group %d: %v\n", key, group)
	}
}

在上述示例中,我们定义了一个二维整数切片numbers,然后定义了一个空的map结构groups,用于存储分组后的数据。接下来,我们使用for循环遍历numbers切片中的每个元素nums。

在每次循环迭代中,我们使用nums[0]获取每个子切片的第一个元素,将其作为键key。然后,我们将当前子切片nums添加到groups[key]切片中,实现根据键分组的过程。

最后,我们通过循环遍历groupsmap,打印出每个分组的键和对应的二维切片。

运行上述代码,输出结果如下:

Group 1: [[1 2 3]]
Group 4: [[4 5 6]]
Group 7: [[7 8 9]]
Group 10: [[10 11 12]]

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!