有一个城市名称的哈希作为键,对应的索引作为值,
"Los Angeles" => 2.5
"San Francisco" => 3.6
"San Diego" => 2.4
.
.
.
现在我想按值对哈希进行排序,所以它会变成
"San Diego" => 2.4
"Los Angeles" => 2.5
"San Francisco" => 3.6
.
.
.
而且我需要得到整个散列的每个散列条目的排名。在示例中假设洛杉矶,它将返回 2。
有什么建议么?
尝试sort_by{|k,v| v}
cities = {"Los Angeles" => 2.5, "San Francisco" => 3.6, "San Diego" => 2.4 }
cities.sort_by {|key, value| value}
然后索引变成排名(我想)
这将为您提供给定城市的排名:
cities.keys.sort.index("Los Angeles") + 1
#=> 1
索引从 0 开始,所以我在答案中添加了 1,以便为您提供从 1 开始的排名。