我有这样的哈希:
Some_hash = {"Albania"=>"Europe", "Andorra"=>"Europe", "Austria"=>"Europe", Lebanon"=>"Asia", "Macau"=>"Asia", "Malaysia"=>"Asia", "Papua New Guinea"=>"Asia", "Jamaica"=>"North America", "Martinique"=>"North America", "Argentina"=>"South America", "Chile"=>"South America", "Sao Tome and Principe"=>"Africa", "Senegal"=>"Africa", "Somalia"=>"Africa",}
我想单独确定五大洲以及属于它们的国家,这样我最终会得到这样的结论:
{"Africa" => ["Senegal", "Somalia"]} {"Europe" => ["Albania", "Andorra", "Austria"]}
适用于所有大陆.
我试过这个:
def country inflation_hash = {} XPath.match( data, "//country").map do |element| inflation_hash[element.attributes["name"]] = element.attributes["continent"] end inflation_hash.each do |country, continent| new_hash = {} if inflation_hash.has_value?("Africa") == true new_hash["Africa"] = inflation_hash.keys puts new_hash end end end
而且效果太好了.我得到一个新的哈希:
{Africa => []}
但我有两个问题:
我为每个非洲国家创建了一个新哈希.
每个新哈希都包含所有密钥,其中包括所有非非洲国家/地区.
我认为第一个问题与each
方法有关所以我必须设置一些条件,对吧?
第二个问题,我不知道如何解决.
任何指针都会更受欢迎.