如何在Netlogo中合并两个列表,而又不用括号?

时间:2019-04-09 19:38:45

标签: list netlogo

我一直试图将两个列表anglesdistance合并到一个新列表中,并且我想将angles的第一个元素进行合并distance中的前x个元素,如下所示:

[[45 0.5] [45 1] [45 2] [135 0.5] [135 1] [135 2] etc.

我的问题是,它看起来像这样:

[[[45 0.5] [45 1] [45 2]] [[135 0.5] [135 1] [135 2]] etc.

换句话说,它在每对具有angles中相同元素的项周围都有括号。

这是我到达这里的方式:

    let q 0
  let temp ""
  while [ q < length list1 ]
  [
    let l item q list1
    let t 0
    while [t < 9] [
      let d item t coarse-distance-list
      set temp (word temp "[ " d " " l " ] ")
      set t t + 1
    ]
    set q q + 1
  ]
  set chromosomes temp

list1是角度,list2是距离。我知道我可以以一种更轻松,更有效的方式来做到这一点,但是目前,正确确定清单是我的首要任务。 预先感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我敢肯定,这里的专家会提出一个更智能的解决方案,但是请尝试以下方法:

to test

  let list1 (list 45 45 45 135 135 135)
  let list2 (list 0.5 1 2 0.5 1 2)
  let temp range length list1

  let result []

  foreach temp [ i ->
    set result lput ( list ( item i list1 ) ( item i list2  ) ) result

  ]

  show result

end

这将使您返回:

observer> test
observer: [[45 0.5] [45 1] [45 2] [135 0.5] [135 1] [135 2]]
相关问题