scala过滤元组列表的列表

dr *_*rry 2 scala list filter

我有一个列表列表,其中包含元组(char,Int)

val raw = List(List((a,0), (b,0)), List((a,1), (b,0)), List((a,2), (b,0)), List((a,0), (b,1)), List((a,1), (b,1)), List((a,2), (b,1)), List((a,0), (b,2)), List((a,1), (b,2)), List((a,2), (b,2)))`
Run Code Online (Sandbox Code Playgroud)

我想过滤掉Int为0的所有元组.所以结果应该是:

List(List(), List((a,1)), List((a,2)), List((b,1)), List((a,1), (b,1)), List((a,2), (b,1)), List((b,2)), List((a,1), (b,2)), List((a,2), (b,2)))
Run Code Online (Sandbox Code Playgroud)

我试图做一个地图然后过滤器,但编译器抱怨 incompatible types: ((Int, Char) => Boolean expected but found ((Int, Char) => Unit)

raw.map(_.filter(tuple => match {
  (_,0) => false
  (_,_) => true
})
Run Code Online (Sandbox Code Playgroud)

我出错了吗?

Nik*_*ita 5

这是正确的:

raw.map(_.filter(_._2 != 0))
Run Code Online (Sandbox Code Playgroud)