首页 > 解决方案 > Scala迭代列表的两个连续元素

问题描述

我们将如何迭代列表的两个连续元素并应用差异函数例如我有这个:

val list = List(List("Eat", "Drink", "Sleep", "work"), List("Eat", "Sleep", "Dance"))

我想遍历这两个连续的元素并计算差异

我已经尝试过了,但我不知道如何迭代每两个连续的元素

list.map((a,b) => a.diff(b))

输出应该是List("Drink", "work")

标签: listscalaiterationpairwise

解决方案


如果我理解正确,您可能想要遍历一个滑动窗口。

list.sliding(2).map{
  case List(a, b) => a.diff(b)
  case List(a) => a
}.toList

或者,您可能还希望grouped(2)将列表划分为组。


推荐阅读