我有一个包含 n 个列表的列表,想要找到它们的交集,例如:
[[1 2 3 4][0 4][4 1]]
[4]
我找到了一个代码here查找两个列表的交集:
to-report intersect [a b]
report (filter [ member? ? b ] a)
end
但我不知道如何将这个概念扩展到多个列表。
最佳答案
哦!对于 NetLogo 未被充分重视的来说,这是一个非常好的用例 reduce
功能。
鉴于上面的intersect
记者:
print reduce intersect [[1 2 3 4][0 4][4 1]]
会给你:
[4]
reduce
将 intersect
应用于第一个和第二个子列表,然后将 intersect
应用于该子列表和第三个子列表的结果-list,依此类推,与主列表中的子列表一样多...
关于netlogo - 在 NetLogo 中查找列表交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26928738/