gpt4 book ai didi

scala - 遍历一个列表,每次获取越来越多的元素

转载 作者:行者123 更新时间:2023-12-04 15:26:56 24 4
gpt4 key购买 nike

假设我有一个看起来像这样的列表

{A, B, C, D, E}  

我想遍历这个列表,每次获取越来越多的元素,所以每次迭代看起来像:

Iteration 1: {A}  
Iteration 2: {A, B}
Iteration 3: {A, B, C}
Iteration 4: {A, B, C, D}
Iteration 5: {A, B, C, D, E}

目前我正在通过以下方式完成此任务:

(1 to list.size).foreach( n => {
val elements = list.take(n)
// Do something with elements
})

但这感觉很乱。是否有更“scala”的方式来完成这种行为?

最佳答案

你可以使用 list.inits :

scala> List(1,2,3,4,5).inits.foreach(println)
List(1, 2, 3, 4, 5)
List(1, 2, 3, 4)
List(1, 2, 3)
List(1, 2)
List(1)
List()

为了得到你想要的输出,你需要从迭代器创建一个列表,反转它并取尾以省略空列表:

scala> List(1,2,3,4,5).inits.toList.reverse.tail.foreach(println)
List(1)
List(1, 2)
List(1, 2, 3)
List(1, 2, 3, 4)
List(1, 2, 3, 4, 5)

关于scala - 遍历一个列表,每次获取越来越多的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62070421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com