计算列表中每个项目的出现次数

时间:2015-08-19 15:55:25

标签: list netlogo

我有一个包含20个项目的列表,我想计算列表中每个项目的出现次数。我知道下面的代码

k

但我不想写20行像

to-report frequency [i lst]
    report length filter [? = i] list
end

1 个答案:

答案 0 :(得分:3)

这是:

map [frequency ? list1] n-values 20 [? + 1]

示例运行:

observer> set list1 [1 4 4 7 10 10 10 14]
observer> show map [frequency ? list1] n-values 20 [? + 1]
observer: [1 0 0 2 0 0 1 0 0 3 0 0 0 1 0 0 0 0 0 0]

对于Netlogo 6,OP的功能是:

to-report frequency [an-item a-list]
    report length (filter [ i -> i = an-item] a-list)
end

制作频率列表的方法如下:

map [ i -> frequency i list1] (n-values 20 [i -> i])