私はタプルの次のリストがあるとします。スカラ:どのようにリストにタプルの要素を変換する
val tuples = listOfStrings.map(string => {
val split = string.split(":")
(split(0), split(1), split(2))
})
私はリストに分割(0)を取得したいと思い、別のリスト内の分割(1)とそうです。 これを達成することができ、簡単な方法は、書面により次のとおりです。
list1 = tuples.map(x => x._1).toList
list2 = tuples.map(x => x._2).toList
list3 = tuples.map(x => x._3).toList
は、3つの別々のステートメントを記述することなく、上記を達成するためのよりエレガントな(機能的な)方法はありますか?
遅すぎる:) が投稿しようとした可能読者のために、非常に不可解です: 'tuples.map {T => t._1 :: t._2 :: t._3 :: Nil} .transpose'いいね。 +1 –
悪い考え方、あなたは他の答えから解凍を使用する必要があります:http://stackoverflow.com/a/17281359/53974 – Blaisorblade
@Balisorblade:私は反対する必要があります。これは 'Tuple2'だったのですが、' Tuple3'です。 'unzip'はペアの解凍のみを処理し、jeshan自身の例は' Tuple2'ではなく 'Tuple3'のリストを表示します。 –