计算Ruby中的哈希值

计算Ruby中的哈希值,ruby,Ruby,我有一个Ruby中的哈希数组,如下所示: domains = [ { "country" => "Germany"}, {"country" => "United Kingdom"}, {"country" => "Hungary"}, {"country" => "United States"}, {"country" => "France"}, {"country" => "Germany"}, {"country" =>

我有一个Ruby中的哈希数组,如下所示:

domains = [
  { "country" => "Germany"},
  {"country" => "United Kingdom"},
  {"country" => "Hungary"},
  {"country" => "United States"},
  {"country" => "France"},
  {"country" => "Germany"},
  {"country" => "Slovakia"},
  {"country" => "Hungary"},
  {"country" => "United States"},
  {"country" => "Norway"},
  {"country" => "Germany"},
  {"country" => "United Kingdom"},
  {"country" => "Hungary"},
  {"country" => "United States"},
  {"country" => "Norway"}
]
counted = {
  "Germany" => "3",
  "United Kingdom" => "United Kingdom",
  "Hungary" => "3",
  "United States" => "4",
  "France" => "1"
}
从这个散列数组中,我想创建一个新的散列,如下所示:

domains = [
  { "country" => "Germany"},
  {"country" => "United Kingdom"},
  {"country" => "Hungary"},
  {"country" => "United States"},
  {"country" => "France"},
  {"country" => "Germany"},
  {"country" => "Slovakia"},
  {"country" => "Hungary"},
  {"country" => "United States"},
  {"country" => "Norway"},
  {"country" => "Germany"},
  {"country" => "United Kingdom"},
  {"country" => "Hungary"},
  {"country" => "United States"},
  {"country" => "Norway"}
]
counted = {
  "Germany" => "3",
  "United Kingdom" => "United Kingdom",
  "Hungary" => "3",
  "United States" => "4",
  "France" => "1"
}
使用Ruby 1.9有没有一种简单的方法可以做到这一点?

这个怎么样

counted = Hash.new(0)
domains.each { |h| counted[h["country"]] += 1 }
counted = Hash[counted.map {|k,v| [k,v.to_s] }]

此哈希具有冲突键。该哈希看起来不像您希望的那样。哈希中只能有一个具有给定密钥的条目,因此您只能有一个条目(我认为保证是
“country”=>“Norway”
。您想要数组的答案吗?除了源哈希的问题之外。您希望
“United Kingdom”=>“United Kingdom”
还是
“United Kingdom”=>2
?“我在Ruby中有一个哈希,看起来像这样…”不,你没有!-)对不起,我编辑了我的问题-它应该是一个哈希数组!太好了!-你是一个救命恩人。我花了很多时间试图让它工作!!谢谢!如果,我有不同的键怎么办。例如-这是我的哈希,哈希={a:5,b:2,c:3,d:5}.我想要这样的结果-value\u count(散列,2)=>1,value\u count(散列,5)=>2,其中value\u count(散列,值)这是我的方法。当一个国家有9个以上的实例时会发生什么情况?:)谢谢,我没想到。:)我应该在评论之前阅读手册。不客气,从实例中学习比从手册中学习更好