List Scala筛选元组列表中元素的条件和
我是Scala新手,需要一些关于如何组合的帮助 对元组列表进行筛选和求和 我需要的是一个过滤元组列表的整数之和 基本上,这个问题的答案是: 所有设定权重的总和是多少 以下样本列表的结果应为20 清单非常简单:List Scala筛选元组列表中元素的条件和,list,scala,filter,sum,List,Scala,Filter,Sum,我是Scala新手,需要一些关于如何组合的帮助 对元组列表进行筛选和求和 我需要的是一个过滤元组列表的整数之和 基本上,这个问题的答案是: 所有设定权重的总和是多少 以下样本列表的结果应为20 清单非常简单: val ln = List( ("durationWeight" , true, 10), ("seasonWeight" , true, 10), ("regionWeight" , fal
val ln = List( ("durationWeight" , true, 10),
("seasonWeight" , true, 10),
("regionWeight" , false, 5),
("otherWeight" , false, 5)
根据布尔标志筛选列表是一个简单的过程:
val filtered = ln.filter { case(name, check, value) => check == true }
这会给我返回想要的元组。把它们加起来似乎是可行的
带一张地图,后跟总和:
val b = filtered.map{case((name, check, value) ) => value}.sum
它返回所有设置权重的所需总和
但是,如何在一个步骤中结合过滤、映射和求和,
最理想的是在一个优雅的班轮
感谢您的帮助。另一种方法:
ln.collect{ case (_, true, value) => value }.sum
(0 /: ln)((sum,x) => if (x._2) sum + x._3 else sum)
另一种方法是:
(0 /: ln)((sum,x) => if (x._2) sum + x._3 else sum)
谢谢,这正是我想要的。谢谢,这正是我想要的。欢迎来到堆栈溢出,马文。汉森!作为未来的提示,没有必要编辑您的问题以反映问题已解决或包含解决方案-通过将答案标记为已接受,该功能已经内置。谢谢欢迎来到Stack Overflow,Marvin,Hansen!作为未来的提示,没有必要编辑您的问题以反映问题已解决或包含解决方案-通过将答案标记为已接受,该功能已经内置。谢谢这肯定会比先收款再求和快。这肯定会比先收款再求和快。