从列表中选择元素

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

我正在努力提高对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不为空(if empty? mylist)。我的问题是,像我一样,使用扩展名选择项目是否正确。

更新:列表是通过以下方式组成的:我决定用item 4创建一个新项目quality 2(质量是[0,5]中的一个参数)。我将此商品添加到列表(item 4, item3, item2, item1)中-从最新到最早-质量分别为item4 2, item3 1, item2 2, item1 5,并添加到邻居的列表中:例如,neighbour1将具有(item4, item 11, item 10,..)的列表quality 2, 3, 1 , 分别。我希望根据质量参数从列表中选择一个项目。这意味着我将从我的列表中选择item1。我的邻居会选择item11,因为它的质量等于3,即该组中的最高质量。

谢谢您的帮助。

netlogo
1个回答
0
投票

我正在阅读https://ccl.northwestern.edu/netlogo/docs/rnd.html

rnd:weighted-one-of-list mylist [ [ii] -> ii ]

以这种方式使用扩展名选择项目是否正确?

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

© www.soinside.com 2019 - 2024. All rights reserved.