[英]How to know the index of the iterator when using map in Julia
我有一個數組數組,稱為y
:
y=Array(Vector{Int64}, 10)
它基本上是一維數組(其中10個)的列表,每個1維數組的長度為5.以下是它們如何初始化的示例:
for i in 1:10
y[i]=sample(1:20, 5)
end
每個1維陣列包括5個隨機采樣的1
到20
之間的整數。
現在我正在應用一個map函數,其中對於y
中的每個1維數組,排除1
到20
數字:
map(x->setdiff(1:20, x), y)
但是,我想確保當函數應用於y[i]
,如果setdiff(1:20, y[i])
包含i
,則i
從結果中排除。 換句話說,我想要一個像...一樣的功能
setdiff(deleteat!(Vector(1:20),i) ,y[i])
但是有了map
。
主要是我的問題是你是否可以在map
函數中訪問索引。
PS,我知道如何用comprehensions
來做,我想知道是否有可能用地圖來做。
理解方式:
[setdiff(deleteat!(Vector(1:20), index), value) for (index,value) in enumerate(y)]
像這樣?
map(x -> setdiff(deleteat!(Vector(1:20), x[1]),x[2]), enumerate(y))
對於你的例子給出這個:
[2,3,4,5,7,8,9,10,11,12,13,15,17,19,20]
[1,3,5,6,7,8,9,10,11,13,16,17,18,20]
....
[1,2,4,7,8,10,11,12,13,14,15,16,17,18]
[1,2,3,5,6,8,11,12,13,14,15,16,17,19,20]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.