2009/2/13 Bertram Scharpf <lists / bertram-scharpf.de>:
> Hi,
>
> Am Freitag, 13. Feb 2009, 22:02:31 +0900 schrieb David A. Black:
>> On Fri, 13 Feb 2009, Bertram Scharpf wrote:
>>> Am Freitag, 13. Feb 2009, 21:08:19 +0900 schrieb Dave Baldwin:
>>>> On 13 Feb 2009, at 11:04, Vikas Gholap wrote:
>>>>
>>>>> I want to retrieve first 10 items(key value pairs) from given hash{}
>>>>>
>>>> ary = hashTable.sort {|a,b| -1*(a[1]<=>b[1])}
>>>>
>>> As ary is only of temporary use, you don't need to create another
>>> array ary[0,10]. I suggest:
>>>
>>>  10.times { puts "Key: %s ==> %s" % e.shift }
>>
>> Do you mean ary.shift?
>
> Arrgh. Of course.
>
> The code may still be improved: Omit the multiplication by -1 in
> the sort block.
>
>  ary = hashTable.sort { |a,b| a[1]<=>b[1] }
>  10.times { puts "Key: %s ==> %s" % ary.pop }

Did we have these already?

p hash_table.sort_by {|k,v| -v}.first(10)
p hash_table.sort_by {|k,v| v}.last(10).reverse

Cheers

robert


-- 
remember.guy do |as, often| as.you_can - without end