簡體   English   中英

如何在Julia中使用map時知道迭代器的索引

[英]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個隨機采樣的120之間的整數。

現在我正在應用一個map函數,其中對於y中的每個1維數組,排除120數字:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM