我有一个像这样的散列{"red"=>3,"blue"=>1,"yellow"=>3,"green"=>1,"black"=>4}我想按照散列值的顺序排序和显示前三种颜色,即["black","red","yellow"]我试着做类似sort_by{|x,y|h[x]h[y]}的事情和max_by{|x,y|h[x]},但我只得到["black"].如何获得前三名? 最佳答案 作为变体:h={"green"=>1,"red"=>3,"yellow"=>3,"blue"=>1,"black"=>4}h.sort_by{|color,n|