netlogo将字符串转换为嵌套列表中的数字

Jen*_*enB 4 netlogo

我在NetLogo和igraph之间转移(在R中).从igraph返回的一些信息是2级嵌套字符串列表.典型示例如下:

[ ["1" "2" "3"] ["4"] ]
Run Code Online (Sandbox Code Playgroud)

我想将内部字符串转换为数字,同时保留列表结构.所以这个例子将成为:

[ [1 2 3] [4] ]
Run Code Online (Sandbox Code Playgroud)

我猜我需要的组合map以及read-from-string(也许还有其他列表操作类似lput,并foreach由于嵌套),但我不能让它工作.

有任何想法吗?

mat*_*sap 5

实质上,将每个列表映射到仅具有int值的映射列表.请尝试以下方法:

show map [ map [ read-from-string ? ] ?] [ ["1" "2" "3"] ["4"] ]
Run Code Online (Sandbox Code Playgroud)


Nic*_*tte 5

只是为了好玩,这里有一个可以转换任意数量的嵌套级别的版本:

to-report read-from-list [ x ]
  report ifelse-value is-list? x
    [ map read-from-list x ] 
    [ read-from-string x ]
end
Run Code Online (Sandbox Code Playgroud)

例子:

observer> print read-from-list [ ["1" "2" "3" ] ["4" [ "5" "6" ] ] ]
[[1 2 3] [4 [5 6]]]
Run Code Online (Sandbox Code Playgroud)