มีวิธีที่สะดวก / การจดชวเลขเพื่อวนซ้ำสำหรับลูปในอาร์เรย์โดยรับทั้งค่าและดัชนีหรือไม่
ตัวเลือกพื้นฐาน:
i = 1
for file in ["foo.csv", "bar.csv"]
...
i += 1
end
files = ["foo.csv", "bar.csv"]
for i in 1:length(files)
files[i]
end
มีวิธีที่สะดวก / การจดชวเลขเพื่อวนซ้ำสำหรับลูปในอาร์เรย์โดยรับทั้งค่าและดัชนีหรือไม่
ตัวเลือกพื้นฐาน:
i = 1
for file in ["foo.csv", "bar.csv"]
...
i += 1
end
files = ["foo.csv", "bar.csv"]
for i in 1:length(files)
files[i]
end
คำตอบ:
แก้ไข: ตามที่ Matt B ชี้ให้เห็นpairs
นั้นง่ายและปลอดภัยสำหรับดัชนี (หากใช้OffsetArray
ชื่อ tuple, พจนานุกรม ฯลฯ ):
for (i, file) in pairs(["foo.csv", "bar.csv"])
...
end
ทางเลือกหนึ่งคือenumerate
:
for (i, file) in enumerate(["foo.csv", "bar.csv"])
...
end
แต่โปรดทราบว่าการแจกแจงไม่จำเป็นต้องมีดัชนีที่ถูกต้องเนื่องจากเป็นดัชนีที่มีประสิทธิภาพzip(x, countfrom(1))
และอาจทำลายOffsetArray
ได้
สิ่งที่ปลอดภัยสำหรับดัชนี แต่ต้องfiles
เป็นตัวแปร:
files = ["foo.csv", "bar.csv"]
for (i, file) in zip(eachindex(files), files)
...
end
pairs
!