首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用第二个列表作为键过滤Scala元组列表(在元组中)

使用第二个列表作为键过滤Scala元组列表(在元组中)
EN

Stack Overflow用户
提问于 2019-11-19 22:34:13
回答 1查看 105关注 0票数 0

我在Scala集合的过滤方面遇到了麻烦。任何帮助都将不胜感激。

我有以下设置:

代码语言:javascript
复制
val groupByLetter = (A, List((2018-10-24,1.0), (2018-10-22,-2.1), (2018-10-10,5.1), (2018-11-22,2.2), (2018-11-10,24)), (B, List((2018-10-24, 1.0), (2018-10-22,-2.1), (2018-10-10,5.1), (2018-11-22,2.2), (2018-11-10,30)))

val dates = List(2018-10-24, 2018-10-22, 2018-11-10)

预期的结果是:

代码语言:javascript
复制
(A, List((2018-10-24,1.0), (2018-10-22,-2.1))) 
(B, List((2018-10-24,1.0), (2018-10-22,-2.1), (2018-11-10,30)))

我试过以下两种,还有无数种:

代码语言:javascript
复制
val try1 = groupByLetter.filter(d => dates.contains(d._2.productIterator.foreach(s => s).toString))

val try2 = groupByLetter.filter(d => dates.contains(d._2.map(s => println(s._1)).toString))

注意:日期列表都是字符串。另外,内部元组中的groupByLetter's date字段是DateTime,这就是为什么我必须.toString它们的原因。

期待有任何帮助解决我的问题!谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-20 00:35:05

为了理解你的问题,我不得不做了很多额外的工作。如果我搞错了,那你只能怪自己了。

代码语言:javascript
复制
import java.time.LocalDate

val groupByLetter :List[(String, List[(LocalDate, Double)])] =
  List(("A", List((LocalDate.parse("2018-10-24"),1.0)
                 ,(LocalDate.parse("2018-10-22"),-2.1)
                 ,(LocalDate.parse("2018-10-10"),5.1)
                 ,(LocalDate.parse("2018-11-22"),2.2)
                 ,(LocalDate.parse("2018-11-10"),24.0)))
      ,("B", List((LocalDate.parse("2018-10-24"),1.0)
                 ,(LocalDate.parse("2018-10-22"),-2.1)
                 ,(LocalDate.parse("2018-10-10"),5.1)
                 ,(LocalDate.parse("2018-11-22"),2.2)
                 ,(LocalDate.parse("2018-11-10"),30.0))))

val dates = List("2018-10-24", "2018-10-22", "2018-10-30")

val filtered = groupByLetter.map{outerTpl =>
  (outerTpl._1, outerTpl._2.filter(innerTpl => dates.contains(innerTpl._1.toString)))
}
//List((A,List((2018-10-24,1.0), (2018-10-22,-2.1)))
//   , (B,List((2018-10-24,1.0), (2018-10-22,-2.1))))

我注意到AB列表几乎完全相同。(它们在过滤结果中是相同的。)提供测试数据使判断结果是否正确不是更有意义吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58943860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档