此代碼字符串列表集合轉換成雙打與CSV第一個字符串刪除轉換:使用摺疊或映射到一個集合
val points = List(("A1,2,10"), ("A2,2,5"), ("A3,8,4"), ("A4,5,8"), ("A5,7,5"), ("A6,6,4"), ("A7,1,2"), ("A8,4,9"))
points.map (m => (m.split(",")(1).toDouble , m.split(",")(2).toDouble))
//> res0: List[(Double, Double)] = List((2.0,10.0), (2.0,5.0), (8.0,4.0), (5.0,8.0), (7.0,5.0), (6.0,4.0), (1.0,2.0), (4.0,9.0))
可以這樣重新編寫使用倍或地圖,使得其長度CSV列表中元素的數量不是硬編碼的?目前這只是正確的,每個字符串包含3個CSV元素。但我不能確定使用N個元素,如("A1,2,10,4,5")
更新如何重新寫:這是可能的解決方案:
points.map (m => (m.split(",").tail).map(m2 => m2.toDouble))
可以使用單遍歷,而不是兩個可以實現嗎?