List 如何在Netlogo中合并两个列表而不获得额外的括号?

List 如何在Netlogo中合并两个列表而不获得额外的括号?,list,netlogo,List,Netlogo,我一直在尝试将两个列表,角度和距离,合并到一个新列表中,我想以一种方式来完成,即角度“第一个元素与距离中的前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. 我的问题是它看起来像这样: [[45 0.5] [45 1] [45 2] [135 0.5] [135 1] [135 2] etc

我一直在尝试将两个列表,
角度
距离
,合并到一个新列表中,我想以一种方式来完成,即
角度
“第一个元素与
距离
中的前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.
我的问题是它看起来像这样:

[[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.
换句话说,它在每两个项目周围都有括号,这些项目从
角度
具有相同的元素

我就是这样来到这里的:

    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
让q0
让临时工“
而[q
列表1是角度,列表2是距离。我知道我可以用一种更简单、更有效的方式来做这件事,但目前我的首要任务当然是列出正确的清单。
提前感谢您的帮助

我相信这里的专业人士会想出一个更聪明的解决方案,但是试试这个:

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]]

使用匿名过程是个好主意-
map
也适用于此:
print(map[[l1 l2]>(list l1 l2)]list1 list2)
这样更好:代码行更少,结果相同。