当我sort_by
在频率哈希上使用时,它返回一个数组。如何改为返回哈希?
puts frequency.class #returns hash
frequency = frequency.sort_by {|k,v| v}.reverse
puts frequency.class #returns array
sort_by
只返回一个数组。您可以将其转换回这样的哈希:
frequency = frequency.sort_by {|k,v| v}.reverse
frequency = Hash[frequency]
这是一个很老的问题,但是使用 Ruby 2.2+ 非常简单:
frequency.sort_by { |_, v| -v }.to_h