go [][]string to []float64
对于数据:
maintenanceFillingRate := [][]string{
{"", "R41022", "R410", "R3332"},
{"2022", "22", "23", "22"},
{"2023", "11", "43", "43"},
{"2024", "22", "42", "34"},
{"2025", "44", "53", "34"},
{"2026", "33", "53", "32"},
{"2027", "35", "43", "25"},
{"2028", "52", "32", "22"},
}想要得到除去第一行和第一列的数据,后面的数据每一列作为一个[]float64,可以在循环里实现:
示例:
<span style="color:#dcc6e0">package</span> main
<span style="color:#dcc6e0">import</span> (
<span style="color:#abe338">"fmt"</span>
<span style="color:#abe338">"strconv"</span>
)
<span style="color:#dcc6e0">func</span> <span style="color:#00e0e0">main</span><span style="color:#f5ab35">()</span> {
maintenanceFillingRate := [][]<span style="color:#dcc6e0">string</span>{
{<span style="color:#abe338">""</span>, <span style="color:#abe338">"R41022"</span>, <span style="color:#abe338">"R410"</span>, <span style="color:#abe338">"R3332"</span>},
{<span style="color:#abe338">"2022"</span>, <span style="color:#abe338">"22"</span>, <span style="color:#abe338">"23"</span>, <span style="color:#abe338">"22"</span>},
{<span style="color:#abe338">"2023"</span>, <span style="color:#abe338">"11"</span>, <span style="color:#abe338">"43"</span>, <span style="color:#abe338">"43"</span>},
{<span style="color:#abe338">"2024"</span>, <span style="color:#abe338">"22"</span>, <span style="color:#abe338">"42"</span>, <span style="color:#abe338">"34"</span>},
{<span style="color:#abe338">"2025"</span>, <span style="color:#abe338">"44"</span>, <span style="color:#abe338">"53"</span>, <span style="color:#abe338">"34"</span>},
{<span style="color:#abe338">"2026"</span>, <span style="color:#abe338">"33"</span>, <span style="color:#abe338">"53"</span>, <span style="color:#abe338">"32"</span>},
{<span style="color:#abe338">"2027"</span>, <span style="color:#abe338">"35"</span>, <span style="color:#abe338">"43"</span>, <span style="color:#abe338">"25"</span>},
{<span style="color:#abe338">"2028"</span>, <span style="color:#abe338">"52"</span>, <span style="color:#abe338">"32"</span>, <span style="color:#abe338">"22"</span>},
}
<span style="color:#d4d0ab">// 获取行数和列数</span>
rows := <span style="color:#f5ab35">len</span>(maintenanceFillingRate)
cols := <span style="color:#f5ab35">len</span>(maintenanceFillingRate[<span style="color:#f5ab35">0</span>])
<span style="color:#d4d0ab">// 创建一个切片,用于存储每一列的数据</span>
columns := <span style="color:#f5ab35">make</span>([][]<span style="color:#dcc6e0">float64</span>, cols<span style="color:#f5ab35">-1</span>)
<span style="color:#d4d0ab">// 遍历每一列,并将数据转换为 float64 类型</span>
<span style="color:#dcc6e0">for</span> j := <span style="color:#f5ab35">1</span>; j < cols; j++ {
column := <span style="color:#f5ab35">make</span>([]<span style="color:#dcc6e0">float64</span>, rows<span style="color:#f5ab35">-1</span>)
<span style="color:#dcc6e0">for</span> i := <span style="color:#f5ab35">1</span>; i < rows; i++ {
value, err := strconv.ParseFloat(maintenanceFillingRate[i][j], <span style="color:#f5ab35">64</span>)
<span style="color:#dcc6e0">if</span> err == <span style="color:#f5ab35">nil</span> {
column[i<span style="color:#f5ab35">-1</span>] = value
} <span style="color:#dcc6e0">else</span> {
fmt.Printf(<span style="color:#abe338">"无法将 \"%s\" 转换为 float64\n"</span>, maintenanceFillingRate[i][j])
}
}
columns[j<span style="color:#f5ab35">-1</span>] = column
}
<span style="color:#d4d0ab">// 打印每一列的数据</span>
<span style="color:#dcc6e0">for</span> j := <span style="color:#f5ab35">0</span>; j < cols<span style="color:#f5ab35">-1</span>; j++ {
fmt.Println(columns[j])
}
}输出:
[22<span style="color:#f5ab35"> 11 </span>22<span style="color:#f5ab35"> 44 </span>33<span style="color:#f5ab35"> 35 </span>52]
[23<span style="color:#f5ab35"> 43 </span>42<span style="color:#f5ab35"> 53 </span>53<span style="color:#f5ab35"> 43 </span>32]
[22<span style="color:#f5ab35"> 43 </span>34<span style="color:#f5ab35"> 34 </span>32<span style="color:#f5ab35"> 25 </span>22]