2012-06-20 2 views

ответ

10

Просто используйте map и превратить каждый кортеж первого элемента:

t.map(x => x._1) 

или короче:

t.map(_._1) 
+3

Или , если вы предпочитаете не использовать аксессоры '_i':' t map {case (n, _, _) => n} ' –

4

Общая форма для извлечения более одного столбца:

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) 
} 
+0

Этот soluti on имеет лучшую производительность для извлечения более чем одного столбца –