我正在尝试将像List(1,2,3,4)
这样的Scala列表拆分成对(1,2) (2,3) (3,4)
,执行此操作的简单方法是什么?
最佳答案
val xs = List(1,2,3,4)
xs zip xs.tail
// res1: List[(Int, Int)] = List((1,2), (2,3), (3,4))
正如文档所说,
zip
返回由该列表和另一个可迭代集合组成的列表
通过将相应的元素成对组合。如果两者之一
集合比其他集合长,其其余元素是
忽略了。
因此,用
List('a,'b,'c,'d)
压缩的List('x,'y,'z)
是List(('a,'x), ('b,'y), ('c,'z))
,第一个的最后一个'd
被忽略了。在您的示例中,
tail
的List(1,2,3,4)
是List(2,3,4)
,因此您可以看到它们如何成对压缩。
关于scala - 如何将Scala列表成对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11248739/