假设我有以下字符串数组:
val lines: List[String] = List("GOOL,1182", "AMZN,1920", "MSFT,124", "APPL,192.2")
实际上,这种类型的数组通常是通过读取csv文件获得的。
从概念上讲,我想
我想出的方法如下:
var col1List = List[String]()
var col2List = List[String]()
lines.foreach{ x =>
val cols = x split ","
col1List = col1List ::: List(cols(0))
col2List = col2List ::: List(cols(1))
}
之后,我得到以下列表:
List[String] = List(GOOL, AMZN, MSFT, APPL)
List[String] = List(1182, 1920, 124, 192.2)
在Scala中有更好的方法吗?
您正在寻找的是.unzip
方法。
这是一个例子:
val lines: List[String] = List("GOOL,1182", "AMZN,1920", "MSFT,124", "APPL,192.2")
val (l1, l2) = lines.map(_.split(",")).map(arr => (arr.head, arr.last)).unzip
println(l1, l2)
结果:
(List(GOOL, AMZN, MSFT, APPL),List(1182, 1920, 124, 192.2))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句