ruby 里 hash 里如何去重

Python014

ruby 里 hash 里如何去重,第1张

一。给Hash添加默认值 :

h = {1,2,3,4} #=>{1 =>2, 3 =>4}

h.default = 7

h[1]#=> 2

h[3]#=> 4

h[4]#=> 7

h[5]#=> 7

二。给Hash添加key-value对:

h = {} #=>{}

h.store("a",1) #=>1

h["a"] #=>1

h.fetch("a")#=>1

h["b"] = 2 #=>2

h["b"] #=>2

p h#=>{"a"=>1, "b"=>2}

三。清除Hash的key-value对:

h = {:a =>1, :b =>2}

删除全部的k-v对,有两种方法

给hash赋空值

用clear方法 (这种方法更快一点)

得到不同数据的值:

%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