【问题标题】:Scala - Shift element pairs in a listScala - 在列表中移动元素对
【发布时间】:2017-04-07 19:23:01
【问题描述】:

我从 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))

有谁知道我该如何解决这个问题?

【问题讨论】:

    标签: scala list


    【解决方案1】:

    这是一种方法,使用grouped

    list.grouped(2).flatMap(_.reverse).toList
    

    【讨论】:

    • 完美!谢谢。
    • mapflatten?如果我们有能力同时做这两件事不是很方便吗? ;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-21
    相关资源
    最近更新 更多