golang for 根据key对二维切片分组
在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]]