2014-02-19 79 views
2

在Scala中執行以下映射有簡明的方法嗎?從元組列表中提取列表的習慣性方式

val listOfTuples: List[Tuple2[Foo, Bar]] = ??? 
val (foos, bars) = listOfTuples // foo:List[Foo], bar:List[Bar] 

我見過othersmapList[Tuple[X, X]]List[List[X]],然後transpose名單,雖然這只是從同質類型參數組成的元組的工作。

+1

這是你想要的答案:其實,我掛http://stackoverflow.com/a/17281359/406435 – senia

+0

在這個問題中,儘管我沒有閱讀到足夠多的信息來尋找答案,這確實是我想要的(不是像最投票答案那樣映射和轉置)。 –

回答

9

您應該使用方法unzip這樣的:

val (foos, bars) = listOfTuples.unzip 

還有爲Tuple3集合的方法unzip3

+0

輝煌,並遺憾不完全閱讀列表規範,以找到它:( –

0

如果元數爲3〜22,你可以做到這一點與product-collections

val foos = listOfTuples._1 
val bars = listOfTuples._2