我从Scala开始,我想编写一个函数来移动列表中的元素对,如下所示:
changePairs(列表(1,2,3,4,5,6,7,8,9,10,11))
//> res62:List [Int] = List(2,1,4,3,6,5,8,7,10,9,11)
我考虑过将列表拆分为两个,反转值然后再次加入列表,但我无法反转这些值,我只能设法反转整个列表:
def changePairs(a: List[Int]) = {
val listAux = a zip a.tail
val listAux2 = listAux.reverse
}
//> res6:List [(Int,Int)] = List((10,11),(9,10),(8,9),(7,8),(6,7), (5,6),(4,5),(3,4),(2,3),(1,2))
有谁知道如何解决这个问题?
答案 0 :(得分:3)
这是使用grouped
:
list.grouped(2).flatMap(_.reverse).toList