这是Scala中seq
的{{1}}
tuples
我喜欢将每个元组的第一个元素提取到它自己的序列中,即
val t = Seq((1,2,3),(4,5,6))
我如何在Scala中执行此操作?
答案 0 :(得分:10)
只需使用map
并将每个元组转换为第一个元素:
t.map(x => x._1)
或更短:
t.map(_._1)
答案 1 :(得分:5)
提取多个列的一般表单:
def extractColumns3[T1, T2, T3](t: Seq[(T1, T2, T3)]): (Seq[T1], Seq[T2], Seq[T3]) =
t.foldLeft((Seq.empty[T1], Seq.empty[T2], Seq.empty[T3])) { (columns, row) ⇒
(columns._1 :+ row._1, columns._2 :+ row._2, columns._3 :+ row._3)
}