【问题标题】:Need to get the list from Option Vector需要从 Option Vector 中获取列表
【发布时间】:2019-09-06 02:58:02
【问题描述】:

我有一个元组列表选项向量 喜欢

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 ....  

【问题讨论】:

  • 能否提供正确的代码
  • 和规范,你所期望的和你的尝试会很好
  • 抱歉,我在这里没有看到Vector,而且some 无法编译。你能提供有效的代码吗?

标签: scala list vector tuples option


【解决方案1】:
x.flatMap {
  case Some(l) => l.filter(_._1=="x").map(_._2)
  case None => List(0)}.sum

【讨论】:

    【解决方案2】:

    对不起,我得到了答案

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

    使用 flatten 删除 none 然后再次使用 flatten 将所有元组展平然后过滤和总结

    【讨论】:

      猜你喜欢
      • 2012-05-08
      • 1970-01-01
      • 2021-10-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多