如何将 for 循环的输出添加到 Scala 中的列表?

How do I add the output of a for-loop to a list in Scala?

我希望遍历元组列表并从每个元组中提取第二个值。然后我想将这些值添加到新列表中。

我列表中的每个元组都由一个字符串和一个整数组成:

y = List((this, 1), (is, 2), (a, 3), (test, 4)

我可以成功地迭代每个元组并使用以下方法提取整数:

for (x <- y) {

val intValue = x._2

println(intValue)

}

这给了我

1

2

3

4

然后我想将这些值添加到列表中。任何帮助将不胜感激。

这里不用for,简单的map即可:

y.map(_._2)

map 函数通过在 List.

的每个元素上调用一个函数从旧的 List 创建一个新的 List

函数 _._2x => x._2 的 shorthand。这只是 returns 元组中的第二个值,即您要提取的 Int

您可以像@Tim 解释的那样使用 map 函数,或者像在

中那样使用 yield
val list = for ((_,b) <- y) yield b