Supponiamo che io ho il seguente elenco di tuple:Scala: Come convertire gli elementi tuple di liste
val tuples = listOfStrings.map(string => {
val split = string.split(":")
(split(0), split(1), split(2))
})
Vorrei ottenere la scissione (0) in un elenco, split (1) in un altro elenco e presto. Un modo semplice questo potrebbe essere realizzato è scrivendo:
list1 = tuples.map(x => x._1).toList
list2 = tuples.map(x => x._2).toList
list3 = tuples.map(x => x._3).toList
Esiste un modo più elegante (funzionale) di realizzare quanto sopra senza scrivere 3 separati prospetti?
troppo lento :) stava per inserire: 'tuples.map {t => t._1 :: :: t._2 t._3 :: Nil} .transpose' bello. +1 –
Pessima idea, dovresti usare decomprimere dall'altra risposta: http://stackoverflow.com/a/17281359/53974 – Blaisorblade
@Balisorblade: non sono d'accordo. Questo sarebbe vero se fosse un 'Tuple2', ma è un' Tuple3'. 'unzip' gestisce solo le coppie di decompressione, e l'esempio di jeshan mostra una lista di' Tuple3', non 'Tuple2'. –