Netlogo 从列表中拾取元素

Netlogo 从列表中拾取元素,netlogo,Netlogo,我正在努力提高我对NetLogo中列表的理解。 很快,我将从列表中添加和拾取(以及删除)项目。每只海龟都有自己的名单。 每个列表应包含按时间顺序排列的项目,从最新到最旧。一旦一只乌龟选择了一个项目,邻居们就会把这个项目放在他们列表的顶部(选择项目的乌龟也是如此)。我想做的是: rnd:weighted-one-of-list mylist [ [ii] -> ii ] ; pick one of the most recent items already in the list set m

我正在努力提高我对NetLogo中列表的理解。 很快,我将从列表中添加和拾取(以及删除)项目。每只海龟都有自己的名单。 每个列表应包含按时间顺序排列的项目,从最新到最旧。一旦一只乌龟选择了一个项目,邻居们就会把这个项目放在他们列表的顶部(选择项目的乌龟也是如此)。我想做的是:

rnd:weighted-one-of-list mylist [ [ii] -> ii ] ; pick one of the most recent items already in the list
set mylist lput old_item mylist print "Old item" ; add items to the list
使用JenB在前一篇文章中建议的扩展。 使用“从列表中拾取项目”(旧项目)的条件是mylist不为空(
如果为空?mylist
)。
我的问题是,如果像我那样使用扩展来选择项目是否正确

更新:列表按以下方式组成: 我决定创建一个新项目,
项目4
,具有
质量2
(质量是
[0,5]
中的一个参数)。 我将此项目分别添加到我的列表
(项目4、项目3、项目2、项目1)
(从最新到最旧)中的质量
项目4 2、项目3 1、项目2、项目1 5
,以及邻居的列表中:
邻居1
,例如,将具有列表
(项目4、项目11、项目10,…)
质量
为2、3、1
,分别地 我期望的是根据质量参数从列表中选择一项。这意味着我将从mylist中选择
item1
。我的邻居会选择
item11
,因为它的质量等于3,即组中最高的

谢谢你的帮助。

我正在读书

以这种方式使用扩展名拾取项目是否正确


是的,根据文档,这是一个正确的用法。

随机浮点1<2
总是正确的,因为0和1.0之间的数字总是小于2。很抱歉,赛斯!它与2不成正比,而是与一个可以取值0到1的参数成正比。我编辑了这篇文章。这是一次失误(但我做了两次)
random float 1
在我看来是正确的。谢谢Seth。我一直怀疑“与……成比例”这个词。你认为像我那样解释它是正确的吗?最后,但并非最不重要的是,这主要是一个问题,使用我发布的代码部分所示的扩展添加和选择项目是否正确?JenB给了我一些关于如何使用它的建议,我想确定这就是方法(我没有得到任何错误,所以我很难理解它)。谢谢,教授,这两个问题我都不知道答案。
rnd:weighted-one-of-list mylist [ [ii] -> ii ]