Scala从元组列表中删除元素

4 scala list

我是scala的新手,我试图从元组元素列表中删除它们的第一个值大于第二个值.

例如,从列表中:

val list =  List[(Int,Int)]((1,3),(3,1),(2,2)) 
Run Code Online (Sandbox Code Playgroud)

我想得到这个清单:

val list =  List[(Int,Int)]((1,3),(2,2)) 
Run Code Online (Sandbox Code Playgroud)

所以我使用了以下几行:

var newList = List[(Int, Int)]()
for (element <- list) {
    if (element._1 <= element._2) {
        newList ::= element;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是斯卡拉感觉很长..有没有更短的路?

Ben*_*mes 9

像twillouer和tzofia的解决方案,但模式匹配:

list filter { case (a, b) => a <= b }
Run Code Online (Sandbox Code Playgroud)


小智 6

你可以简单地做:

list.filter(element => element._1 <= element._2)
Run Code Online (Sandbox Code Playgroud)

过滤器函数过滤掉不满足给定布尔条件的元素.