3
A
回答
3
你可以用它尾巴zip
名單:
val list = List(1, 2, 3, 4, 5)
// list: List[Int] = List(1, 2, 3, 4, 5)
list zip list.tail
// res6: List[(Int, Int)] = List((1,2), (2,3), (3,4), (4,5))
5
(假設你不關心你的嵌套對是列表而不是元組)
斯卡拉集合有一個sliding
窗口函數:
@ val lazyWindow = List(1, 2, 3, 4, 5).sliding(2)
lazyWindow: Iterator[List[Int]] = non-empty iterator
爲了實現集合:
@ lazyWindow.toList
res1: List[List[Int]] = List(List(1, 2), List(2, 3), List(3, 4), List(4, 5))
你甚至可以做更多 「funcy」 窗口,像長度爲3,但與第2步:
@ List(1, 2, 3, 4, 5).sliding(3,2).toList
res2: List[List[Int]] = List(List(1, 2, 3), List(3, 4, 5))
1
我一直都是一個pattern matching
的粉絲。所以你也可以這樣做:
val list = List(1, 2, 3, 4, 5, 6)
def splitList(list: List[Int], result: List[(Int, Int)] = List()): List[(Int, Int)] = {
list match {
case Nil => result
case x :: Nil => result
case x1 :: x2 :: ls => splitList(x2 :: ls, result.:+(x1, x2))
}
}
splitList(list)
//List((1,2), (2,3), (3,4), (4,5), (5,6))
相關問題
- 1. 斯卡拉找到元組
- 2. 斯卡拉 - 元組
- 3. 斯卡拉 - 在列表中找到一個特定的元組
- 4. 斯卡拉:地圖列表中的元素到另一個列表元素
- 5. 在斯卡拉如何將列表中的元素與反向維度分組?
- 6. 斯卡拉:得到一個Map.head元素
- 7. 檢索數組元素在斯卡拉
- 8. 斯卡拉更新數組元素
- 9. 斯卡拉 - 簡單的元組生成
- 10. 修改元組的陣列,斯卡拉
- 11. 斯卡拉/阿卡流中元素的分組
- 12. 斯卡拉:在元組
- 13. 斯卡拉元組解構
- 14. 斯卡拉元組選
- 15. 斯卡拉元組提取
- 16. 斯卡拉分割字符串元組
- 17. 斯卡拉:獲取列表的元素與兩個限制
- 18. 斯卡拉,轉換多個名單,元組
- 19. 斯卡拉在元組列表中的每個第一要素獲得的第二個元素的最大
- 20. 斯卡拉 - 列表元組列表的隱含證據
- 21. 斯卡拉元組函數組合
- 22. 如何使表單元素與另一個元素共享引導列
- 23. 斯卡拉。在一個元素中的foreach日期列表
- 24. 斯卡拉。獲取列表的第一個元素
- 25. 將基於一個共同的元組元素的元組的列表
- 26. 斯卡拉分區一組
- 27. 斯卡拉foldLeft添加一個元素?
- 28. 斯卡拉 - 轉換列表[字符串]元組列表[(Int,Int)]
- 29. 如何合併由相同元素的元組在斯卡拉
- 30. 在斯卡拉如何在陣列組連續的元素