如何从 Netlogo 中的未排序列表中删除多个项目

Moh*_*d B 2 netlogo

所以我对 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)

有任何想法吗 ?

Nic*_*tte 5

的组合member?,并filter将会帮助你:

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本例中的 ),可以作为一个整体对列表进行操作。很少需要显式循环遍历它们。