Scala 如何使用flatMap将集合拆分为元素

Scala 如何使用flatMap将集合拆分为元素,scala,scala-collections,Scala,Scala Collections,我有这种类型的输入: 列表键1,列表1,2,3,列表键2,列表4,5 我想用以下方式重新映射它: 列出键1、键1、键2、键1、键3、键2、键4、键2、键5 我不知道如何将列表拆分为多个元素,但仍然保留该键。我不确定您尝试了什么,但以下是最简单的方法: val flattened = list.flatMap({ case (k, l) => l.map((k,_)) }) val splitMe = List( (key1, List(1,2,3)), (key2, List(4,5))

我有这种类型的输入: 列表键1,列表1,2,3,列表键2,列表4,5 我想用以下方式重新映射它: 列出键1、键1、键2、键1、键3、键2、键4、键2、键5


我不知道如何将列表拆分为多个元素,但仍然保留该键。

我不确定您尝试了什么,但以下是最简单的方法:

val flattened = list.flatMap({ case (k, l) => l.map((k,_)) })
val splitMe = List( (key1, List(1,2,3)), (key2, List(4,5)) )
splitMe.flatMap(v=> v._2.map(g => (v._1, g)))

事实证明,我在创建测试输入列表时犯了一个错误,它的类型与这里介绍的不同,这导致我走上了错误的道路。谢谢你的解决方案