替换嵌套列表?
例如
[[1 2][3 4] [5 1]]
到
[[99 2][3 4] [5 1]]
有人可以澄清Netlogo中列表的使用吗?
答案 0 :(得分:3)
你的问题有点不明确。您想如何决定更改哪个项目?
我想你想通过索引来做到这一点,例如: "第0个子列表的第0项"。然后那个:
to-report replace-subitem [index1 index2 lists value]
let old-sublist item index1 lists
report replace-item index1 lists (replace-item index2 old-sublist value)
end
observer> show replace-subitem 0 0 [[1 2] [3 4] [5 1]] 99
observer: [[99 2] [3 4] [5 1]]
您还可以根据其他标准进行替换。例如,假设我们想要将子列表的第一项中的所有出现次数1更改为99.那么这就是:
to-report replace-first [old new the-list]
if first the-list = old
[ report replace-item 0 the-list new ]
report the-list
end
to-report replace-firsts [old new lists]
report map [replace-first old new ?] lists
end
observer> show replace-firsts 1 99 [[1 2] [3 4] [1 1]]
observer: [[99 2] [3 4] [99 1]]
许多其他答案也是可能的,具体取决于您正在尝试解决的问题。