在嵌套列表中查找成员netlogo

问题描述 投票:0回答:1

我正在尝试解决netlogo中的一个问题,该问题现在让我困扰了一段时间。我有两个清单(与我合作过的海龟和“成功” /“失败”的判断)。这两个列表的映射方式如下:[[(turtle 10)“ successful”] [[turtle 11)“ unsuccessful”]与以下内容:

let general-history (map list collaborators my-success)

合作者是谁的数字,而我的成功是一个字符串(“成功”或“不成功”)

现在,我想检查一只海龟在其一般历史记录列表中是否至少有一个成功的合作者和一个不成功的合作者能够继续前进。这是我必须去的地方:

ifelse not empty? general-history and member? "successful " last general-history and member? "unsuccessful" last general-history

我知道这是错误的,因为last在这里意味着我将只查看一般历史的最后一个列表(即[] [] [此一个])。我要执行的操作是评估整个一般历史嵌套列表中是否至少有两个列表(一个以“成功”作为索引1,一个以“不成功”作为索引1)。

foreach是否可以在这里更好地工作,还是可以继续使用会员?但是带有某种元素+列表索引?非常感谢您的帮助!

list nested netlogo member
1个回答
0
投票

如果我正确理解了您的问题,则可以使用map创建所有last项目(成功与否)的列表,然后将member?应用于该列表。这是一个完整的模型示例,该示例构造了一些测试数据并采用了这种方法。

to testme
  clear-all
  ; create some test data
  create-turtles 10
  let collaborators sort n-of 3 turtles
  let list-both (map list collaborators (list "yes" "no" "no"))
  print list-both
  ; check condition
  print member? "yes" map last list-both
end
© www.soinside.com 2019 - 2024. All rights reserved.