所以我对 Netlogo 中的列表有点挣扎,所以基本上我有两个列表,我想从列表 2 中删除列表 1 中的项目,例如:
列表 1 : [8 6 9 7 1 3]
列表 2: [5 9 8]
结果列表:[6 7 1 3]
我尝试了以下代码,但它返回一个空列表:
if List 2 != []
[
foreach List 2
[
let p position ? List 1
if p = true
[
set List 1 remove-item p List 1
]
]
]
Run Code Online (Sandbox Code Playgroud)
有任何想法吗 ?
let list1 [8 6 9 7 1 3]
let list2 [5 9 8]
let result filter [ x -> not member? x list2 ] list1
print result
Run Code Online (Sandbox Code Playgroud)
将打印所需的:
[6 7 1 3]
Run Code Online (Sandbox Code Playgroud)
提示:每当您发现自己试图对 NetLogo 中的任何内容使用索引时,您可能没有以最佳方式做事。NetLogo 有大量的函数(如filter本例中的 ),可以作为一个整体对列表进行操作。很少需要显式循环遍历它们。