0

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

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

2 回答 2

1

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

frequency = frequency.sort_by {|k,v| v}.reverse
frequency = Hash[frequency]
于 2013-04-10T01:06:21.107 回答
1

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

frequency.sort_by { |_, v| -v }.to_h
于 2019-01-28T19:55:46.060 回答