【问题标题】:How to split collection into elements with flatMap如何使用 flatMap 将集合拆分为元素
【发布时间】:2014-05-07 00:13:57
【问题描述】:

我有这种类型的输入:
List( (key1, List(1,2,3)), (key2, List(4,5)) )
我想通过以下方式重新映射它:
List( (key1, 1), (key1, 2), (key1, 3), (key2, 4), (key2, 5) )

我无法弄清楚如何将列表拆分为元素并仍然保留密钥。

【问题讨论】:

  • 事实证明,我在创建测试输入 List 时犯了一个错误,它的类型与此处显示的类型不同,这导致我走错了路。感谢您的解决方案

标签: scala scala-collections


【解决方案1】:
val flattened = list.flatMap({ case (k, l) => l.map((k,_)) })

【讨论】:

    【解决方案2】:

    我不确定你尝试了什么,但这是我最简单的方法:

    val splitMe = List( (key1, List(1,2,3)), (key2, List(4,5)) )
    splitMe.flatMap(v=> v._2.map(g => (v._1, g)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-14
      • 2018-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多