将List [Tuple2 [A,B]]转换为Tuple2 [Seq [A],Seq [B]]

时间:2012-10-22 07:43:27

标签: list scala transform tuples seq

在这里,尝试将一个case类元组的List转换为一个序列元组并多次分配结果。

val items = repo.foo.list // gives me a List[(A,B)]

我可以像这样完成多项任务:

val(a,b) = (items.map(_._1).toSeq, items.map(_._2).toSeq)

但是按照以下方式分步进行会更好:

val(a,b) = repo.foo.list.map{case(a,b) => (a,b)}

2 个答案:

答案 0 :(得分:6)

我不确定我是否正确理解了这个问题。也许unzip适用于你想要的东西?

以下是一些示例链接:http://daily-scala.blogspot.de/2010/03/unzip.html

答案 1 :(得分:0)

对于更一般的情况,您可以查看product-collectionsCollSeqNSeq[TupleN[A1..An]]TupleN[Seq[A1..An]]

在您的示例中,您可以像这样提取Seq:

items._1
items._2
...