如何将 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
函数 _._2
是 x => x._2
的 shorthand。这只是 returns 元组中的第二个值,即您要提取的 Int
。
您可以像@Tim 解释的那样使用 map
函数,或者像在
中那样使用 yield
val list = for ((_,b) <- y) yield b
我希望遍历元组列表并从每个元组中提取第二个值。然后我想将这些值添加到新列表中。
我列表中的每个元组都由一个字符串和一个整数组成:
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
函数 _._2
是 x => x._2
的 shorthand。这只是 returns 元组中的第二个值,即您要提取的 Int
。
您可以像@Tim 解释的那样使用 map
函数,或者像在
yield
val list = for ((_,b) <- y) yield b