【问题标题】:Combine one List element with second list list in scala在scala中将一个列表元素与第二个列表列表结合起来
【发布时间】:2019-04-15 17:43:16
【问题描述】:

在 scala 中,我有两个列表。第一个列表说 L1 是包含学生卷数的一维,第二个说 L2 是包含科目分数的 n 维。基于这两个列表,我想创建第三个列表,比如 L3,它采用 L1 的第一个卷号(第一个元素)并将其与 L2 的第一行连接并产生 L3 的第一行,第一个元素是卷号,接下来是标记科目等这样做直到L1的长度。 L1 和 L2 的长度相同。我尝试了以下代码,但它没有按预期工作

val L1 = List(1,2,3) // roll numbers
val L2 = List(List(34,67,21,56,87) ,List(65,21,34,98,77) , List(76,65,59,88,90)) // marks
      //I want L3 =List(List(1,34,67,21,56,87) , List(2,65,21,34,98,77) ,List(3,76,65,59,88,90))
val L3 = L1.map(x => x :: L2.map(row => row))

【问题讨论】:

    标签: scala list


    【解决方案1】:
    val L1 = List(1,2,3) // roll numbers
    val L2 = List(List(34,67,21,56,87) ,List(65,21,34,98,77) , List(76,65,59,88,90)) // marks
    
    val L3 = (L1, L2).zipped.map(_ :: _)
    

    【讨论】:

    • (L1, L2).zipped.map{case (a,b)=> a::b}又名(L1, L2).zipped.map(_ :: _)
    • .zip(..).map.zipped.map 的区别不仅在于可读性,还在于性能。
    • 5 个元素当然没关系 :)
    【解决方案2】:
    val L3 = L1.zip(L2).map(x => x._1 :: x._2)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-18
      • 1970-01-01
      • 1970-01-01
      • 2019-10-09
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      • 1970-01-01
      相关资源
      最近更新 更多