Aşağıdaki Scala Listesi verildiğinde:
val l = List(List("a1", "b1", "c1"), List("a2", "b2", "c2"), List("a3", "b3", "c3"))
Nasıl alabilirim:
List(("a1", "a2", "a3"), ("b1", "b2", "b3"), ("c1", "c2", "c3"))
Zip yalnızca iki Listeyi birleştirmek için kullanılabildiğinden, ana Listeyi bir şekilde yinelemeniz / azaltmanız gerektiğini düşünüyorum. Şaşırtıcı olmayan bir şekilde, aşağıdakiler çalışmıyor:
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)
Bunun nasıl yapılacağına dair herhangi bir öneriniz var mı? Sanırım bunu yapmanın çok basit bir yolunu kaçırıyorum.
Güncelleme: Her biri M öğeli N Listeleri Listesi alabilen ve M TupleNs Listesi oluşturabilen bir çözüm arıyorum.
Güncelleme 2: Görünüşe göre, benim özel kullanım durumumda bir grup listesi yerine bir liste listesine sahip olmak daha iyi, bu yüzden balkabağının yanıtını kabul ediyorum. Yerel bir yöntem kullandığı için aynı zamanda en basit olanıdır.