SORU
2 Kasım 2009, PAZARTESİ


İkiden fazla listeleri Scala birlikte posta alabilir miyim?

Aşağıdaki Scala Listesi verilen:

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ılabilir beri,/ana Listeyi bir şekilde azaltmak yineleme yapmak gerekir bence. Beklendiği gibi, şu ç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)

Bunu yapmak için nasıl herhangi bir öneriniz? Çok basit bunu yapmak için bir yol eksik olduğumu düşünüyorum.

Güncelleme:M elementleri ile N Listelerinin Listesini al ve M TupleNs bir Listesini oluşturmak için bir çözüm arıyorum.

Güncelleme 2:Benim için özel daha iyi anlaşılan durum listeleri kullanmak yerine, dizilerini bir bir liste var, kabak yanıtını kabul ediyorum. Doğal bir yöntem kullanması da basit.

CEVAP
11 EYLÜL 2011, Pazar


scala> (List(1,2,3),List(4,5,6),List(7,8,9)).zipped.toList
res0: List[(Int, Int, Int)] = List((1,4,7), (2,5,8), (3,6,9))

Gelecekte başvurmak için.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • LinusTechTips

    LinusTechTip

    25 Kasım 2008
  • RiverCityGraphix

    RiverCityGra

    6 Ocak 2012
  • Video-Tutorials.Net

    Video-Tutori

    15 Mart 2011