NetLogo : How to do multiple operations on lists (find, get , replace, remove , search elements within lists , …)

ε祈祈猫儿з 提交于 2019-12-10 20:35:01

问题


I am new to NetLogo and I was wondering if there is a complete reference to do operations on lists, I have read most of the posts here in addition to Netlogo dictionary but for example if I need a list of pairs of numbers like

[[1 2] [2 2] [2 3] ,,, ] 

when I search

member? 3 thislist 

Will I have the option to say which element of inner list I am considering for the search ? for instance I will get false if it search first element and true if I search second element.

Can anybody please clarify the use of lists in Netlogo?


回答1:


map, filter, reduce, foreach, n-values, and sort-by provide customizable operations on lists, using tasks. See http://ccl.northwestern.edu/netlogo/docs/programming.html#tasks.

Here's your example using map:

observer> show member? 3 map first [[1 2] [2 2] [2 3]]
observer: false
observer> show member? 3 map last [[1 2] [2 2] [2 3]]
observer: true



回答2:


It appears Seth answered your initial question. To answer your follow up question on changing an item, you can use replace-item See: http://ccl.northwestern.edu/netlogo/docs/dictionary.html#listsgroup

or use map. Below is an example replacing the first item with a -99 if the second item is 3:

let aList [[1 2] [2 2] [2 3] [4 4] [5 3]] 
set aList map [(list ifelse-value (item 1 ? = 3) [-99][item 0 ?] item 1 ?)] aList


来源:https://stackoverflow.com/questions/20864188/netlogo-how-to-do-multiple-operations-on-lists-find-get-replace-remove

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!