我尝试在没有2
密钥的情况下选择值"Ten"
。
most_count = %w(Five Ten Six Eleven Ten Six One)
word_frequency = Hash.new(0)
most_count.each {|word| word_frequency[word] += 1}
word_frequency.max_by { |k,v| v }
# => ["Ten", 2]
答案 0 :(得分:1)
word_frequency.max_by { |k,v| v }.last
或者,有人可能会排序:
word_frequency.sort_by { |k,v| -v }
然后找到最大值:
word_frequency.sort_by { |k,v| -v }.max
#⇒ ["Ten", 2]
word_frequency.sort_by { |k,v| -v }.max.last
#⇒ 2
请注意,结果["Ten", 2]
并非绝对正确,因为可能有许多具有相同计数的项目。最精确的解决方案将按值分组并对结果进行操作:
# ⇓⇓⇓ this will get all 2s ⇓⇓⇓
word_frequency.group_by(&:last).to_a.last.first
#⇒ 2
答案 1 :(得分:1)
你可以做到
word_frequency.max_by { |k,v| v }.last