2017-05-25 78 views
0

我有一个列表列表(里面有一个坐标列表),并希望通过内部列表的内容进行过滤,如果它与我想删除的结果相匹配。我无法迭代列表,然后列表第二列表。Netlogo fore if with if语句

DATA:

[[14.142135623730951 [-2 -16] "15"] [13.601470508735444 [-4 -17] "15"] [21.93171219946131 [-4 -17] "16"] [27.294688127912362 [-4 -17] "14"] [15.524174696260024 [-4 -17] "13"]] 

我尝试:

set coords [-4 -17] 
    foreach[distanceQueue] 
    [ 
    if(item ? item 1 distanceQueue = coords)[set distanceQueue remove-item ? distanceQueue] 

    ] 

item ?应foreach循环和第1项的当前迭代应该是阵列的第二元件。

任何人都可以协助我完成这项工作吗?

回答

2

这听起来像是你要求filter。例如,

to-report test 
    let lst [ 
    [14.142135623730951 [-2 -16] "15"] 
    [13.601470508735444 [-4 -17] "15"] 
    [21.93171219946131 [-4 -17] "16"] 
    [27.294688127912362 [-4 -17] "14"] 
    [15.524174696260024 [-4 -17] "13"] 
    ] 
    let coords [-4 -17] 
    report filter [[?] -> coords != item 1 ?] lst 
end