list - 是否有从列表中生成元组的 Scala 列表操作?

标签 list scala functional-programming tuples

我正在尝试处理列表中的三元组。当务之急,我可以这样做:

for(i = 1; i < list.length-1; i++)
{
   process( list[i-1], list[i], list[i+1] )
}

Scala 中是否有一个 List 函数(或者如何编写它)可以执行以下操作:
val data = [1,2,3,4,5,6,7,8,9,10]
val tuples = data.some_magic_func
tuples would be[(1,2,3), (2,3,4), (3,4,5), (4,5,6) ... ]

谢谢!

最佳答案

Pablo 的解决方案并不完全正确,您仍然需要将列表列表转换为元组列表:

val data = List(1,2,3,4,5,6,7,8,9,10)
val tuples = data.sliding(3).toList.collect{ case List(x,y,z) => (x,y,z) }
//--> tuples: List[(Int, Int, Int)] = List((1,2,3), (2,3,4), (3,4,5), ...

关于list - 是否有从列表中生成元组的 Scala 列表操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8004855/

相关文章:

c# - 获取不在间隔内的小时列表

scala - spark 将函数应用于并行列

java - 使用特定名称服务器解析主机名的 Scala 或 java lib

function - Haskell 中与(高阶)函数的模式匹配

java - 在 Java 中映射到 haskell 或在 C# 中选择的等效方法是什么?

C# 组合两组不同的列表进行迭代

python - 如果我需要查找一个值或下一个最高值,我应该使用什么搜索算法?

javascript - 创建具有不同标签+过滤器的项目列表

转换为 Scala 的 Java 泛型类型不接受父类(super class)本身

javascript - 如何使用 ImmutableJS 更新 List 中的元素?