Étant donné la liste Scala suivante :
val l = List(List("a1", "b1", "c1"), List("a2", "b2", "c2"), List("a3", "b3", "c3"))
Comment puis-je obtenir :
List(("a1", "a2", "a3"), ("b1", "b2", "b3"), ("c1", "c2", "c3"))
Étant donné que la fermeture éclair ne peut être utilisée que pour combiner deux listes, je pense que vous devez itérer/réduire la liste principale d'une manière ou d'une autre. Sans surprise, ce qui suit ne fonctionne pas :
scala> l reduceLeft ((a, b) => a zip b)
<console>:6: error: type mismatch;
found : List[(String, String)]
required: List[String]
l reduceLeft ((a, b) => a zip b)
Avez-vous des suggestions sur la manière de procéder ? Je pense qu'il me manque un moyen très simple de le faire.
Mise à jour : Je cherche une solution qui puisse prendre une liste de N listes avec M éléments chacune et créer une liste de M TupleNs.
Mise à jour 2 : Il s'avère qu'il est préférable pour mon cas d'utilisation spécifique d'avoir une liste de listes, plutôt qu'une liste de tuples, donc j'accepte la réponse de Citrouille. C'est aussi la plus simple, puisqu'elle utilise une méthode native.
0 votes
Duplication possible de Zip de plusieurs séquences
0 votes
Cela vaut vraiment la peine d'être noté : stackoverflow.com/questions/1683312/
0 votes
@VenkatSudheerReddyAedama J'ai également posé la question, cinq jours plus tard. ;-)