【发布时间】:2012-11-21 16:05:26
【问题描述】:
我有一个按从大到小排序的哈希值。我将如何获得前 5 名?这里有一篇文章谈到只获得一个值。
What is the easiest way to get a key with the highest value from a hash in Perl?
我明白,所以可以说让这些值将它们添加到数组中并删除散列中的元素,然后再次执行该过程?
似乎应该有一种更简单的方法来做到这一点。
我的哈希称为 %words。
已编辑在实际上不需要它的情况下取出代码作为问题的答案。
【问题讨论】:
-
`"我有一个已排序的哈希值.." 不,您不能对哈希值进行排序。
-
不,你不能,我的意思是我按顺序打印它们,但我想获得价值最高的前 5 个。
-
s/[\,|\.|\!|\?|\:|\;|\"]//g不应在字符类括号内使用交替,也不需要转义字符(-和]除外):s/[,.!?:;"]//g for @words。或使用tr/,.!?:;"//d。 -
嗯...您已经将键排序到数组
@keys中。您只需要从该数组中获取前五个元素。