Robert Klemme
2/13/2009 3:18:00 PM
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