如何在 NetLogo 6.2 中组合 2 个列表的所有项目?
How to make combinations between all items of 2 lists in NetLogo 6.2?
我有以下疑问:我有两个列表,每个列表有三个值,我想在这两个列表中的项目之间进行组合。
例如:
列表 1 [5 10 15] 和列表 2 [2 4 8]。我想要以下组合:
list3 [[5 2] [10 2] [15 2] [5 4] [10 4] [15 4] [5 8] [10 8] [15 8]]
我只能进行以下组合:
let list1 ( list repro1 repro2 repro3 ) ;; input variable in the interface. repro1 = 5; repro2 = 10 and repro3 = 15
let list2 ( list met1 met2 met3 ) ;; input variable in the interface. met1 = 2; met2 = 4 and met3 = 8
let list3 ( map [ [ l1 l2 ] -> ( list l1 l2 ) ] list1 list2 )
print list3 ;; command center: [[5 2] [10 4] [15 8]]
有人可以帮我吗?
提前致谢
示例代码的出色工作,感谢您所做的!你绝对是在正确的轨道上,你只需要在第一个里面添加一个额外的地图,这样迭代就会发生在每个组合上,而不是两个列表中的项目 0,然后是两个列表中的项目 1,然后是项目 2两个列表等:
to to combine
let list1 [5 10 15]
let list2 [2 4 8]
let list3 ( reduce sentence ( map [ i -> map [ j -> list i j ] list2 ] list1 ))
print list3
end
输出:
[[5 2] [5 4] [5 8] [10 2] [10 4] [10 8] [15 2] [15 4] [15 8]]
reduce sentence
比 'flattens' 列表高一级,这样您就有了一个列表列表,而不是列表列表列表。
如果您想要上面指定的精确顺序,您可以打乱传递参数的顺序 - 例如:
to combine
let list1 [5 10 15]
let list2 [2 4 8]
let list3 ( reduce sentence ( map [ i -> map [ j -> list j i ] list1 ] list2 ))
print list3
end
给出:
[[5 2] [10 2] [15 2] [5 4] [10 4] [15 4] [5 8] [10 8] [15 8]]
不确定项目的顺序在这里是否重要,只是想指出这一点。
我有以下疑问:我有两个列表,每个列表有三个值,我想在这两个列表中的项目之间进行组合。
例如: 列表 1 [5 10 15] 和列表 2 [2 4 8]。我想要以下组合:
list3 [[5 2] [10 2] [15 2] [5 4] [10 4] [15 4] [5 8] [10 8] [15 8]]
我只能进行以下组合:
let list1 ( list repro1 repro2 repro3 ) ;; input variable in the interface. repro1 = 5; repro2 = 10 and repro3 = 15
let list2 ( list met1 met2 met3 ) ;; input variable in the interface. met1 = 2; met2 = 4 and met3 = 8
let list3 ( map [ [ l1 l2 ] -> ( list l1 l2 ) ] list1 list2 )
print list3 ;; command center: [[5 2] [10 4] [15 8]]
有人可以帮我吗?
提前致谢
示例代码的出色工作,感谢您所做的!你绝对是在正确的轨道上,你只需要在第一个里面添加一个额外的地图,这样迭代就会发生在每个组合上,而不是两个列表中的项目 0,然后是两个列表中的项目 1,然后是项目 2两个列表等:
to to combine
let list1 [5 10 15]
let list2 [2 4 8]
let list3 ( reduce sentence ( map [ i -> map [ j -> list i j ] list2 ] list1 ))
print list3
end
输出:
[[5 2] [5 4] [5 8] [10 2] [10 4] [10 8] [15 2] [15 4] [15 8]]
reduce sentence
比 'flattens' 列表高一级,这样您就有了一个列表列表,而不是列表列表列表。
如果您想要上面指定的精确顺序,您可以打乱传递参数的顺序 - 例如:
to combine
let list1 [5 10 15]
let list2 [2 4 8]
let list3 ( reduce sentence ( map [ i -> map [ j -> list j i ] list1 ] list2 ))
print list3
end
给出:
[[5 2] [10 2] [15 2] [5 4] [10 4] [15 4] [5 8] [10 8] [15 8]]
不确定项目的顺序在这里是否重要,只是想指出这一点。