List 筛选元组列表

List 筛选元组列表,list,scala,filter,List,Scala,Filter,我有一个元组列表,我想过滤掉元组中第二个值不等于7的所有元素 我有: 我能用通配符符号把它缩短吗 谢谢。你可以 valuesAsList.filter(_._2 != 7) 但我怀疑它是否应该优于您的示例或此(考虑可读性): 相当直截了当,没有真正的优势IMHO: valuesAsList.filter(_._2 != 7) 对于元组数组,我们可以使用For with yield,它将返回一个数组 scala>val str=Array((2,你好),(3,我的名字),(8,Lolo)) r

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

我有:

我能用通配符符号把它缩短吗

谢谢。

你可以

valuesAsList.filter(_._2 != 7)
但我怀疑它是否应该优于您的示例或此(考虑可读性):


相当直截了当,没有真正的优势IMHO:

valuesAsList.filter(_._2 != 7)

对于元组数组,我们可以使用For with yield,它将返回一个数组

scala>val str=Array((2,你好),(3,我的名字),(8,Lolo))

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

(i4)收益率(i._1,i._2.toLowerCase)的scala>


res35:Array[(Int,String)]=数组((2,你好),(3,我的名字是))

你试过了吗?无论您在哪里看到
x=>。。。x…
替换为
。\ux
FWIW,我总是写
filter(u.\u 2!=7)
,而不是任何更大更笨拙的东西。我不在乎
v
,只在乎
\u2!=7
;其他一切都会分散注意力
.
是尽可能少的干扰。第二个更具可读性,因为你可以给
v
一个名字,用来描述你与
7
进行比较的内容。这个6年的问题要求一个较短的解决方案。你提供了一个更长的。
valuesAsList.filter {case (_, v) => v != 7}
valuesAsList.filter(_._2 != 7)