是否有便捷/简便的方法来遍历数组上的for循环,同时获取值和索引?
基本选项:
i = 1
for file in ["foo.csv", "bar.csv"]
...
i += 1
end
Run Code Online (Sandbox Code Playgroud)
files = ["foo.csv", "bar.csv"]
for i in 1:length(files)
files[i]
end
Run Code Online (Sandbox Code Playgroud)
Ian*_*Ian 13
编辑:正如Matt B指出的那样,它pairs是简单且索引安全的(如果使用OffsetArray,则命名为tuple,dictionary等):
for (i, file) in pairs(["foo.csv", "bar.csv"])
...
end
Run Code Online (Sandbox Code Playgroud)
一种选择是enumerate:
for (i, file) in enumerate(["foo.csv", "bar.csv"])
...
end
Run Code Online (Sandbox Code Playgroud)
但请注意,枚举不一定提供有效的索引,因为它有效zip(x, countfrom(1))且会破坏OffsetArrays。
另一个是索引安全的,但必须files是一个变量:
files = ["foo.csv", "bar.csv"]
for (i, file) in zip(eachindex(files), files)
...
end
Run Code Online (Sandbox Code Playgroud)