在Scala中執行以下映射有簡明的方法嗎?從元組列表中提取列表的習慣性方式
val listOfTuples: List[Tuple2[Foo, Bar]] = ???
val (foos, bars) = listOfTuples // foo:List[Foo], bar:List[Bar]
我見過othersmap
的List[Tuple[X, X]]
到List[List[X]]
,然後transpose
名單,雖然這只是從同質類型參數組成的元組的工作。
在Scala中執行以下映射有簡明的方法嗎?從元組列表中提取列表的習慣性方式
val listOfTuples: List[Tuple2[Foo, Bar]] = ???
val (foos, bars) = listOfTuples // foo:List[Foo], bar:List[Bar]
我見過othersmap
的List[Tuple[X, X]]
到List[List[X]]
,然後transpose
名單,雖然這只是從同質類型參數組成的元組的工作。
您應該使用方法unzip
這樣的:
val (foos, bars) = listOfTuples.unzip
還有爲Tuple3
集合的方法unzip3
。
輝煌,並遺憾不完全閱讀列表規範,以找到它:( –
如果元數爲3〜22,你可以做到這一點與product-collections:
val foos = listOfTuples._1
val bars = listOfTuples._2
這是你想要的答案:其實,我掛http://stackoverflow.com/a/17281359/406435 – senia
在這個問題中,儘管我沒有閱讀到足夠多的信息來尋找答案,這確實是我想要的(不是像最投票答案那樣映射和轉置)。 –