假设我有以下列表:
a = [1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
而不是从 1 到 5 逐步浏览列表
for i in 1:length(a)
Run Code Online (Sandbox Code Playgroud)
我想从 5 逐步完成到 1。在 Julia 中是否有方便的方法来执行此操作?
有很多选择。
您想a反向迭代还是索引到a?
首先假设您想要迭代a,然后Iterators.reverse(a)是一种有效的方法。
如果您想迭代 的索引,a那么一个有效的选择是reverse(eachindex(a))。您也可以编写,Iterators.reverse(eachindex(a))但这次使用标准reverse函数就足够了(我不建议将其用于反转a,因为它会分配一个新向量)。
请注意,在您的情况下,编写 也是正确的length(a):-1:1,但这通常不是推荐的模式,因为您无法确定a对象支持哪种索引模式(在您的情况下,它是使用基于 1 的索引的向量,但是它可能是使用不同索引样式的对象)。