来自元组Seq的Scala提取物

时间:2012-06-20 15:10:50

标签: scala

这是Scala中seq的{​​{1}}

tuples

我喜欢将每个元组的第一个元素提取到它自己的序列中,即

val t = Seq((1,2,3),(4,5,6))

我如何在Scala中执行此操作?

2 个答案:

答案 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)
}