我有这种输入:
List( (key1, List(1,2,3)), (key2, List(4,5)) )
我想用以下方式重新映射:
List( (key1, 1), (key1, 2), (key1, 3), (key2, 4), (key2, 5) )
我无法弄清楚如何将列表拆分为元素并仍保留密钥。
答案 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)))