Вот seq
из tuples
в ScalaScala экстракт из последа кортежей
val t = Seq((1,2,3),(4,5,6))
Я хотел извлечь первый элемент из каждого кортежа в свою собственную последовательность, т.е.
Seq(1,4)
Как я сделать это в Скала?
Вот seq
из tuples
в ScalaScala экстракт из последа кортежей
val t = Seq((1,2,3),(4,5,6))
Я хотел извлечь первый элемент из каждого кортежа в свою собственную последовательность, т.е.
Seq(1,4)
Как я сделать это в Скала?
Просто используйте map
и превратить каждый кортеж первого элемента:
t.map(x => x._1)
или короче:
t.map(_._1)
Общая форма для извлечения более одного столбца:
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)
}
Этот soluti on имеет лучшую производительность для извлечения более чем одного столбца –
Или , если вы предпочитаете не использовать аксессоры '_i':' t map {case (n, _, _) => n} ' –