【发布时间】:2016-11-21 08:23:49
【问题描述】:
我想按值对我的拥有进行排序。我试图对我的哈希排序way,但它不起作用,我不知道为什么。 这是我的代码:
test="neki text sa recima neki sa i jos neki aa"
mapa=Hash.new(0)
test.split(" ").each do |rec|
mapa[rec]+=1
end
mapa.sort_by {|a,b| b}.reverse
mapa.each do |key, value|
puts "#{key} #{value}"
end
输出是:
neki 3
text 1
sa 2
recima 1
i 1
jos 1
aa 1
它对 HASH 没有任何作用:/ 有人可以向我解释为什么它不起作用吗?
如果你给我一个减号,请在评论中解释我做了什么值得它,这样我就知道在哪里改进。 :)
【问题讨论】:
-
小心使用
sort_by与简单对象。它增加了开销并且会减慢实际的排序过程。请参阅 stackoverflow.com/a/2651028/128421 和 thesort_bydocumentation 以获得良好的描述和比较以及关于“Schwartzian Transform”的维基百科文章。