如果我有一个像List(1,2,3,4)这样的列表,我想创建一个相当于的新列表,
列表(1 + 2,3 + 4)=列表(3,7)
我需要一些操作来在列表中添加相邻的数字并从中创建新的列表。我查看了map,reduceLeft,foldLeft操作,但找不到可以实现此目的的东西。
答案 0 :(得分:6)
您正在寻找的方法是grouped
,它将列表划分为给定大小的子列表。例如:
scala> List(1, 2, 3, 4).grouped(2).map(_.sum).toList
res0: List[Int] = List(3, 7)
请注意grouped
返回一个迭代器,因此如果需要集合,则需要调用toList
之类的东西。另请注意,如果您的列表没有偶数个元素(或者更多通常不能被grouped
的参数整除),则迭代器返回的最终列表可能包含更少的元素比其他人。