0

有一个城市名称的哈希作为键,对应的索引作为值,

"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。

有什么建议么?

4

2 回答 2

4

尝试sort_by{|k,v| v}

cities = {"Los Angeles" => 2.5, "San Francisco" => 3.6, "San Diego" => 2.4 }
cities.sort_by {|key, value| value}

然后索引变成排名(我想)

于 2012-09-24T23:41:46.567 回答
-1

这将为您提供给定城市的排名:

cities.keys.sort.index("Los Angeles") + 1
  #=> 1 

索引从 0 开始,所以我在答案中添加了 1,以便为您提供从 1 开始的排名。

于 2012-09-25T03:13:31.353 回答