Compte tenu de la liste Scala suivante:
val l = List(List("a1", "b1", "c1"), List("a2", "b2", "c2"), List("a3", "b3", "c3"))
Comment puis-je avoir:
List(("a1", "a2", "a3"), ("b1", "b2", "b3"), ("c1", "c2", "c3"))
Puisque zip ne peut être utilisé que pour combiner deux listes, je pense que vous auriez besoin d'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)
Des suggestions pour faire cela? Je pense qu'il me manque un moyen très simple de le faire.
Mise à jour: je recherche une solution qui peut prendre une liste de N listes avec M éléments chacune et créer une liste de M TupleNs.
Mise à jour 2: En fait, 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 Pumpkin. C'est aussi le plus simple, car il utilise une méthode native.