Comment trier une table de hachage, en valeur, dans l'ordre décroissant, et en sortie une valeur de hachage dans ruby?

output.sort_by {|k, v| v}.reverse

et pour les touches de

h = {"a"=>1, "c"=>3, "b"=>2, "d"=>4}
=> {"a"=>1, "c"=>3, "b"=>2, "d"=>4}

Hash[h.sort]

Maintenant que j'ai ces deux. Mais je vais essayer de trier de hachage, par ordre décroissant de la valeur de sorte qu'il sera de retour

=> {"d"=>4, "c"=>3, "b"=>2, "a"=>1 }

Merci d'avance.

Edit:
permettez-moi de poster tout le code.

def count_words(str)
  output = Hash.new(0)
  sentence = str.gsub(/,/, "").gsub(/'/,"").gsub(/-/, "").downcase
  words = sentence.split()
  words.each do |item|
    output[item] += 1 
  end
  puts Hash[output.sort_by{ |_, v| -v }]
  return Hash[output.sort_by{|k, v| v}.reverse]
end
  • Rappelez-vous que les hachages de ne pas avoir une commande précédente de Ruby 1.9
InformationsquelleAutor tipsywacky | 2012-11-04