scala – 使用其他列表中的元素作为参数,对一个列表中的每个元素
发布时间:2020-12-16 18:07:41 所属栏目:安全 来源:网络整理
导读:我不知道怎么称呼这个,但我想要这样的东西. val x = List(1,2,3,...)val y = List(4,5,6,...)//want a result of List(1+4,5+6,7+8,...) 在scala中有一个简单的方法吗?我当前的实现涉及使用从0到x.lenght的循环,这非常难看.如果有可能,我希望解决方案可以使
我不知道怎么称呼这个,但我想要这样的东西.
val x = List(1,2,3,...) val y = List(4,5,6,...) //want a result of List(1+4,5+6,7+8,...) 在scala中有一个简单的方法吗?我当前的实现涉及使用从0到x.lenght的循环,这非常难看.如果有可能,我希望解决方案可以使用超过第n个列表,也可能与其他类型的运算符一起使用. 谢谢 ! 解决方法
回应“如果我有超过3个列表怎么办?”:
def combineAll[T](xss: Seq[T]*)(f: (T,T) => T) = xss reduceLeft ((_,_).zipped map f) 使用这样: scala> combineAll(List(1,3),List(2,2),List(4,6),List(10,10,10))(_+_) res5: Seq[Int] = List(17,19,21) 编辑:或者 def combineAll[T](xss: Seq[T]*)(f: (T,T) => T) = xss.transpose map (_ reduceLeft f) 做同样的事情,可能更有效率. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |