Golang中如何将二维数组转换为一维数组
Golang中如何将二维数组转换为一维数组 我需要从二维数组中提取一列到一维数组中。 我尝试在网上搜索但没有成功。 有人能帮忙吗? 谢谢
7 回复
你好 petrus 感谢你的建议和帮助。 非常感谢。
更多关于Golang中如何将二维数组转换为一维数组的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
感谢大家的快速回复。这个方法有效。但我在想,我是否可以转置输入并读取行。这样可行吗?
你拥有的是行切片还是列切片?
如果是列切片,你可以直接使用 foo[n]。如果是行切片,你需要使用循环并构建一个包含单独列的结果切片。
func main() {
fmt.Println("hello world")
}
感谢您的快速回复。 以下是相关信息。
输入:x [ ][ ] float64 {{1,2,3},{4,5,6},{7,8,9}} 期望输出:y [ ] float64 例如:[2,5,8]
float64 {{1,2,3},{4,5,6},{7,8,9}}
package main
import "log"
func main() {
var input = [][]float64{{1,2,3},{4,5,6},{7,8,9}}
var result = []float64{}
for _, arr := range input {
for _, item := range arr {
result = append(result, item)
}
}
log.Println(result)
}
这会得到一个包含所有值的单一片段,回到 Nobbz 的答案。如果你需要这方面的帮助,可以这样做:
package main
import "log"
func main() {
var input = [][]float64{{1,2,3},{4,5,6},{7,8,9}}
var row = 1
var result = []float64{}
for _, column := range input {
result = append(result, column[row])
}
log.Println(result)
}
输入:x float64 {{1,2,3},{4,5,6},{7,8,9}} 期望输出 y float64 例如:[2,5,8]
package main
import "fmt"
func column(x [][]float64, col int) []float64 {
y := make([]float64, 0, len(x))
for _, row := range x {
if col < 0 || col >= len(row) {
return nil
}
y = append(y, row[col])
}
return y[0:len(y):len(y)]
}
func main() {
x := [][]float64{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
fmt.Println(x)
y := column(x, 1)
fmt.Println(y)
}
[[1 2 3] [4 5 6] [7 8 9]]
[2 5 8]



