排序方法有问题

时间:2014-09-14 18:00:40

标签: ruby sorting

我正在根据文本文件中的单词数量构建直方图。我有一个哈希数组,其键是单词,值是单词每行出现的次数。我需要在这个哈希数组上使用sort方法,以最常出现的单词的顺序对值进行排序。这就是我的排序行:

twoOfArray.sort { |k, v| v <=> k }
twoOfArray.each { |key, value| puts "#{key} occurs #{value} times" "\n"}

完整代码为here。如果我使用sort!方法,我会得到一个未定义的方法错误。有谁知道为什么?

1 个答案:

答案 0 :(得分:0)

我会将您的数据结构(哈希数组)转换为一个大哈希。如果你想对单词进行排序,就没有理由将它们放在单独的哈希中。

然后,如果您的哈希值类似于{'the' => 5, 'and' => 23, 'beer' => 2},您可以通过以下方式排序:

> h = {'the' => 5, 'and' => 23, 'beer' => 2}
> a = h.sort {|a, b| b[1] <=> a[1] } # sort converts a hash into an array of arrays.
> a
#=> [['and', 23], ['the', 5], ['beer', 2]]