需要从Option Vector获取列表

问题描述 投票:-2回答:2

我有一个像元组列表选项的向量

val x = Vector(
Some(List(("x",2))),
Some(List(("x",2),("y",3))),
None,
Some(List(("x",2),("z",2))),
Some(List(("x",2),("z",2))),
None)

如何从上面的矢量中获取列表

更新:

最终目的是获取列表中元素的总数(我们只有三个元素x或y或z)。

像x的总计数将返回8并且y的总计数将返回3并且z的总计数将返回4

喜欢

val totalx = x.flatten.filter ....  
scala list vector tuples option
2个回答
1
投票
x.flatMap {
  case Some(l) => l.filter(_._1=="x").map(_._2)
  case None => List(0)}.sum

0
投票

对不起,我得到了答案

x.flatten.flatten.filter(x => x._1 == "y").map(x => x._2).sum

使用flatten来删除none然后再次使用flatten来使所有元组变平,然后过滤并总结

© www.soinside.com 2019 - 2024. All rights reserved.