朱莉娅:反向迭代

Dil*_*ila 4 julia

假设我有以下列表:

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 中是否有方便的方法来执行此操作?

Bog*_*ski 5

有很多选择。

您想a反向迭代还是索引到a

首先假设您想要迭代a,然后Iterators.reverse(a)是一种有效的方法。

如果您想迭代 的索引,a那么一个有效的选择是reverse(eachindex(a))。您也可以编写,Iterators.reverse(eachindex(a))但这次使用标准reverse函数就足够了(我不建议将其用于反转a,因为它会分配一个新向量)。

请注意,在您的情况下,编写 也是正确的length(a):-1:1,但这通常不是推荐的模式,因为您无法确定a对象支持哪种索引模式(在您的情况下,它是使用基于 1 的索引的向量,但是它可能是使用不同索引样式的对象)。