如何用ruby统计数组或哈希中不同元素的个数

Python016

如何用ruby统计数组或哈希中不同元素的个数,第1张

得到不同数据的值:

%w(a b c a c d).uniq

得到各个元素出现的个数:

count_hash = {}

%w(a b c a c d).each do |item|

key = item.to_sym

if count = count_hash[key]

count_hash[key] = count + 1

else

count_hash[key] = 1

end

end

如果不想多次随机并检测是否已经存在, 那可以先生成你要的范围, 然后用sample

当然这么做并不适用于范围超级大的时候

range = (1..1000).to_a

p range.sample(5)

以上可以取得5个不重复的1-1000内的数字