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

时间:2014-05-06 15:57:21

标签: scala scala-collections

我有这种输入:
List( (key1, List(1,2,3)), (key2, List(4,5)) )
我想用以下方式重新映射:
List( (key1, 1), (key1, 2), (key1, 3), (key2, 4), (key2, 5) )

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

2 个答案:

答案 0 :(得分:11)

val flattened = list.flatMap({ case (k, l) => l.map((k,_)) })

答案 1 :(得分:2)

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

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