从元组列表中提取列表的惯用法

Law*_*eld 2 scala tuples

是否有简洁的方法在Scala中执行以下映射?

val listOfTuples: List[Tuple2[Foo, Bar]] = ???
val (foos, bars) = listOfTuples // foo:List[Foo], bar:List[Bar]
Run Code Online (Sandbox Code Playgroud)

我看到别人 mapList[Tuple[X, X]]List[List[X]],然后transpose在列表中,虽然这只是从同质类型参数组成的元组的工作.

sen*_*nia 9

你应该使用这样的方法unzip:

val (foos, bars) = listOfTuples.unzip
Run Code Online (Sandbox Code Playgroud)

还有一种unzip3收集方法Tuple3.