You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Netlogo中如何查找列表中首个属性值不同的元素位置

解决NetLogo中查找路径首个mode变化节点位置的问题

问题回顾

你需要在海龟的myway节点列表中,找到第一个mode属性与前一个节点不同的元素位置。比如myway对应的mode列表为["bike" "bike" "bike" "bike" "train" "train"]时,目标位置是4(NetLogo列表索引从0开始)。

错误原因分析

你之前尝试的position (first mymodes != "Bici") mymodes逻辑有误:

  • first mymodes != "Bici"会生成一个布尔值(true或false)
  • position命令是在列表中查找指定值的位置,但你的mymodes是字符串列表,不存在布尔值,因此返回false,无法得到正确位置。

正确实现方法

步骤1:生成mode列表(优化版)

用map替代foreach可以更简洁地生成与myway顺序一致的mode列表:

步骤2:查找首个mode变化的位置

通过循环从第二个元素(索引1)开始,逐个比较当前元素与前一个元素的mode,找到第一个不同的索引:

补充说明

  • 如果myway中所有节点的mode都相同,first-diff-pos会保持为-1,你可以根据需求添加对应的处理逻辑。
  • NetLogo列表索引从0开始,因此例子中第五个元素(从1计数)的索引是4,与你的需求匹配。

内容的提问来源于stack exchange,提问作者Aitor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 05:52:46