Scala展平嵌套映射

Scala展平嵌套映射,scala,scala-collections,dictionary-comprehension,Scala,Scala Collections,Dictionary Comprehension,我有一个像这样的嵌套地图: Map(1 -> Map(2 -> 3.0, 4 -> 5.0), 6 -> Map(7 -> 8.0)) 我希望以一种方式“展平”它,使外部贴图和内部贴图的关键点成对,即,对于上面的示例: Seq((1,2),(1,4),(6,7)) 要做到这一点,什么是优雅的方式?请理解: val m = Map(1 -> Map(2 -> 3.0, 4 -> 5.0), 6 -> Map(7 -> 8.0)) m

我有一个像这样的嵌套地图:

Map(1 -> Map(2 -> 3.0, 4 -> 5.0), 6 -> Map(7 -> 8.0))
我希望以一种方式“展平”它,使外部贴图和内部贴图的关键点成对,即,对于上面的示例:

Seq((1,2),(1,4),(6,7))

要做到这一点,什么是优雅的方式?

请理解:

val m =  Map(1 -> Map(2 -> 3.0, 4 -> 5.0), 6 -> Map(7 -> 8.0))
m.toSeq.flatMap({case (k, v) => v.keys.map((k,_))})
val m =  Map(1 -> Map(2 -> 3.0, 4 -> 5.0), 6 -> Map(7 -> 8.0))

scala> for((k1, v1) <- m.toSeq; k2 <- v1.keys) yield (k1, k2)
res4: Seq[(Int, Int)] = ArrayBuffer((1,2), (1,4), (6,7))
valm=Map(1->Map(2->3.0,4->5.0),6->Map(7->8.0))
scala>for((k1,v1)