我有一排如下(智力,list(字符串))如何从scala列表中生成元组数组?
(22,List(B00000JCDS, B000004CSZ, B00016XN6Q, B00005LLY3, B00023B1UI))
我需要生成一个元组或任何其他集合如下:
(22,B00000JCDS)
(22,B000004CSZ)
(22,B00016XN6Q)
(22,B00005LLY3)
(22,B00023B1UI)
如何产生这个数据集Scala呢?
我有一排如下(智力,list(字符串))如何从scala列表中生成元组数组?
(22,List(B00000JCDS, B000004CSZ, B00016XN6Q, B00005LLY3, B00023B1UI))
我需要生成一个元组或任何其他集合如下:
(22,B00000JCDS)
(22,B000004CSZ)
(22,B00016XN6Q)
(22,B00005LLY3)
(22,B00023B1UI)
如何产生这个数据集Scala呢?
scala> a._2.map((a._1,_))
res3: List[(Int, String)] = List((22,B00000JCDS), (22,B000004CSZ), (22,B00016XN6Q), (22,B00005LLY3), (22,B00023B1UI))
,其中a是(22,List(B00000JCDS, B000004CSZ, B00016XN6Q, B00005LLY3, B00023B1UI))
该想到的最具可读性的就是用for
理解:如果你想要一个数组就叫toArray
scala> val g = (22,List("B00000JCDS", "B000004CSZ", "B00016XN6Q", "B00005LLY3", "B00023B1UI"))
g: (Int, List[String]) = (22,List(B00000JCDS, B000004CSZ, B00016XN6Q, B00005LLY3, B00023B1UI))
scala>
| for {
| fromList <- g._2
| } yield (g._1, fromList)
res3: List[(Int, String)] = List((22,B00000JCDS), (22,B000004CSZ), (22,B00016XN6Q), (22,B00005LLY3), (22,B00023B1UI))
。
几种方法以此为给定行a
,如下,
Array.fill(a._2.size)(a._1) zip a._2
(Iterator.continually(a._1) zip a._2.iterator) toArray
Array.tabulate(a._2.size)(i => (a._1, a._2(i)))