如何在 Scala 中用整数映射列表中的值?

How to map the values inside a list with an integer in Scala?

我对 Scala 和函数式编程很陌生。而且我坚持使用 Scala 中的集合操作。我有一个这样的变量:

    val res4: List[(List[Double], Option[Int])] = 
List(
(List(4.0, 2.0, 3.0, 4.0, 3.0, 2.5, 4.0),1998), 
(List(3.0, 4.0, 3.0, 3.0, 3.5, 2.0, 3.0, 3.0, 4.0).2000,
.......
)

我想通过使用列表中的每个分数来制作地图或类似的东西:

(4.0, 1998),
(2.0, 1998),
(3.0, 1998),
(4.0, 1998),
(3.0, 1998),
(2.5, 1998),
(4.0, 1998),
(3.0, 1998),
....

我该怎么做?

此外,如果您知道如何将 Some(1998) 转换为 1998 的技巧,我将不胜感激。

您可以使用 flatMap:

List(
    (List(4.0, 2.0, 3.0, 4.0, 3.0, 2.5, 4.0), Some(1998)),
    (List(3.0, 4.0, 3.0, 3.0, 3.5, 2.0, 3.0, 3.0, 4.0), Some(2000))
  )
    .flatMap(row => row._1.map(number => (number, row._2)))
    .foreach(it => println(it))