如何在ruby中使用sort_by后返回哈希?

时间:2013-04-10 00:54:51

标签: ruby arrays hash

当我在频率哈希上使用sort_by时,它返回一个数组。如何返回哈希?

puts frequency.class        #returns hash
frequency = frequency.sort_by {|k,v| v}.reverse
puts frequency.class        #returns array

2 个答案:

答案 0 :(得分:1)

sort_by只返回一个数组。您可以将其强制转换为这样的哈希:

frequency = frequency.sort_by {|k,v| v}.reverse
frequency = Hash[frequency]

答案 1 :(得分:1)

这是一个很老的问题,但是使用Ruby 2.2+却很简单:

frequency.sort_by { |_, v| -v }.to_h