Scala展平嵌套地图

ben*_*oth 2 scala scala-collections dictionary-comprehension

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

Map(1 -> Map(2 -> 3.0, 4 -> 5.0), 6 -> Map(7 -> 8.0))
Run Code Online (Sandbox Code Playgroud)

我想以一种方式“展平”它,以便外部和内部地图的键配对,即对于上面的示例:

Seq((1,2),(1,4),(6,7))
Run Code Online (Sandbox Code Playgroud)

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

Lee*_*Lee 6

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,_))})
Run Code Online (Sandbox Code Playgroud)