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]]

