Scala - 如何连接地图中多个键的值

Scala - How to concat values from multiple keys in a map

我想编写一个接受 List[String]Map[String,List[Int]] 的函数。
如果键存在于 Map 中,我想遍历 String 列表并获取值。
我已经有了这个:

def getIntList(search_keys: List[String], mapped: Map[String, List[Int]]): List[Int] =
    for ((k:String,v:List[Int]) <- mapped if search_keys.contains(k)) yield {
      v
    }

此函数未按预期 return List[Int],但 Iterable[List[Int]]
我已经尝试在 for 循环之后变平,但这没有用。 我想我无法理解循环中 returned 的内容。也许有更好的方法来做到这一点?
非常感谢任何帮助。

尝试l.flatMap(m.get).flatten,例如

val l = List("a", "c")
val m = Map("a" -> List(1,2), "b" -> List(3,4), "c" -> List(5,6))

l.flatMap(m.get).flatten
// res0: List[Int] = List(1, 2, 5, 6)

其中 m.get returns Option[List[Int]] 所以我们实际上必须压平两次才能达到 Ints