netlogo将字符串转换为嵌套列表中的数字
我正在NetLogo和igraph之间传输(在R中)。从igraph返回的一些信息是两级嵌套字符串列表。典型示例如下所示:netlogo将字符串转换为嵌套列表中的数字,netlogo,Netlogo,我正在NetLogo和igraph之间传输(在R中)。从igraph返回的一些信息是两级嵌套字符串列表。典型示例如下所示: [ ["1" "2" "3"] ["4"] ] 我想将内部字符串转换为数字,同时保留列表结构。因此,这个例子将变成: [ [1 2 3] [4] ] 我猜我需要一个map和从字符串读取的组合(可能还有其他列表操作,比如lput和foreach,因为嵌套),但我就是不能让它工作 有什么想法吗?基本上,将每个列表映射到只包含int值的映射列表。 请尝试以下操作: show
[ ["1" "2" "3"] ["4"] ]
我想将内部字符串转换为数字,同时保留列表结构。因此,这个例子将变成:
[ [1 2 3] [4] ]
我猜我需要一个map
和从字符串读取的组合(可能还有其他列表操作,比如lput
和foreach
,因为嵌套),但我就是不能让它工作
有什么想法吗?基本上,将每个列表映射到只包含int值的映射列表。
请尝试以下操作:
show map [ map [ read-from-string ? ] ?] [ ["1" "2" "3"] ["4"] ]
为了好玩,这里有一个可以转换任意数量嵌套级别的版本:
to-report read-from-list [ x ]
report ifelse-value is-list? x
[ map read-from-list x ]
[ read-from-string x ]
end
例如:
observer> print read-from-list [ ["1" "2" "3" ] ["4" [ "5" "6" ] ] ]
[[1 2 3] [4 [5 6]]]
谢谢,我将为真正的示例编写代码,看看我是如何做到您实际上不需要从字符串读取的周围的方括号的。您只需执行map[map read from string?]…
。