【问题标题】:Scala - How to convert from List of tuples of type (A,B) to type (B,A) using mapScala - 如何使用映射从类型(A,B)的元组列表转换为类型(B,A)
【发布时间】:2012-10-18 20:27:02
【问题描述】:

List[String, Int] A 转换为List[Int, String] B 的最佳方法是什么。我想使用 map 函数,它会遍历列表 A 中的所有项目,然后返回一个新列表 B 但是每当我应用列表 A 上的映射函数它抱怨参数数量错误

val listA:List[(String, Int)] = List(("graduates", 20), ("teachers", 10), ("students", 300))
val listB:List[(Int, String)] = listA.map((x:String, y:Int) => y, x)

有什么建议吗?谢谢

【问题讨论】:

    标签: scala


    【解决方案1】:

    这个怎么样:

    val listB = listA.map(_.swap)
    

    【讨论】:

      【解决方案2】:

      您需要使用模式匹配来获取一对元素。我发誓几天前有人问过这样的问题....

      listA.map{case (a,b) => (b,a)}
      

      【讨论】:

      • +1:Jean-Philippe 的答案可以说是完成这项工作的最佳(最短和最有效)方法,但这个答案为 linuxlewis 提供了了解失败尝试失败原因的缺失线索。
      猜你喜欢
      • 1970-01-01
      • 2022-11-07
      • 2020-07-08
      • 1970-01-01
      • 2015-04-08
      • 2013-08-10
      • 2017-12-28
      • 2021-08-25
      • 2022-02-10
      相关资源
      最近更新 更多