2

这是seqScalatuples中的一个

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

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

Seq(1,4)

我如何在 Scala 中做到这一点?

4

2 回答 2

11

只需使用map每个元组并将其转换为其第一个元素:

t.map(x => x._1)

或更短:

t.map(_._1)
于 2012-06-20T15:13:12.730 回答
6

提取多列的一般形式:

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)
}
于 2017-07-01T10:11:58.433 回答