分享
三行代码  ›  专栏  ›  技术社区  ›  user12891243

按分组后从元组中删除单词

  •  1
  • user12891243  · 技术社区  · 1 周前

    我有一张这样的单子:

    List( (a,1), (a,2), (a,3), (b,2), (b,4) )
    

    我用分组方式

    list.groupBy(x => x._1)
    

    Map(a->List((a,1), (a,2), (a,3)), b->List((b,2), (b,4)))
    

    但我希望输出如下:

    Map(a->List(1,2,3), b->List(2,4))
    

    怎么做?

    1 回复  |  直到 1 周前
        1
  •  2
  •   Mario Galic    1 周前

    Scala 2.13推出 groupMap

    list.groupMap(_._1)(_._2)   // res0: scala.collection.immutable.Map[String,List[Int]] = Map(a -> List(1, 2, 3), b -> List(2, 4))
    

    list
      .groupBy { case (key, value) => key } 
      .mapValues { (values: List[(String, Int)]) => 
        values.map { case (key, value ) => value } 
      }
    

    另外,如果您是Scala新手,请考虑以下对初学者友好的资源