过滤元组列表

时间:2013-05-08 20:59:52

标签: list scala filter

我有一个元组列表,我想过滤掉元组中第二个值不等于7的所有元素。

我做:

valuesAsList.filter(x=>x._2 != 7)

我可以使用通配符表示法使其更短吗?

感谢。

3 个答案:

答案 0 :(得分:28)

你可以

valuesAsList.filter(_._2 != 7)

但是我怀疑它应该优于你的例子或者这个(想想可读性):

valuesAsList.filter {case (_, v) => v != 7}

答案 1 :(得分:3)

相当直接,没有真正的优势恕我直言:

valuesAsList.filter(_._2 != 7)

答案 2 :(得分:0)

对于元组数组,我们可以将其与yield一起使用,它将返回一个数组

scala> val str = Array((2,Hello),(3,MyNameIs),(8,Lolo))

res34:Array [(Int,String)] = Array((2,Hello),(3,MyNameIs),(8,Lolo))

scala> for(i <-str if(i._2.size> 4))收益(i._1,i._2.toLowerCase)

res35:Array [(Int,String)] = Array((2,hello),(3,mynameis))

相关问题