Luc*_* G. 1 list nested-lists netlogo
你好我正在使用Netlogo,我正在尝试创建一个列表列表,其中每个子列表都是几个代理的属性.特别是我将列表声明为全局变量,并将其初始化为空列表.然后我要求每个代理将其attribute_1和attribute_2的列表添加到主列表中.像这样:
globals[mainlist]
set mainlist []
ask agents[
set mainlist sentence [mainlist] [attribute_1 attribute_2 ]
]
Run Code Online (Sandbox Code Playgroud)
这应该创建一个由前一个主列表和列表[attribute_1 attribute_2]组成的新列表.不幸的是,这不起作用,我得到错误:EXPECTED LITERAL VALUE引用"主列表".我该如何编写代码以正确的方式创建列表列表?
Tyr的答案在技术上是正确的,但我想提出一个更加网络化的方法来做到这一点.通常,在NetLogo中,您不必一次构建一个元素列表.如果你发现自己这样做,你可能想停下来尝试以不同的方式解决问题.
在这种特殊情况下,您可以简单地利用of原语:
[ (list attribute_1 attribute_2) ] of agents
Run Code Online (Sandbox Code Playgroud)
这是一个完整的例子:
breed [agents an-agent]
agents-own [attribute_1 attribute_2]
globals [mainlist]
to setup
clear-all
create-agents 10 [
set attribute_1 random 10
set attribute_2 random 10
]
set mainlist [ (list attribute_1 attribute_2) ] of agents
print mainlist
end
Run Code Online (Sandbox Code Playgroud)