On Nov 12, 1:07 am, Davy <[EMAIL PROTECTED]> wrote:
> Hi all,
>
> I have a dictionary with n elements, and I want to get the m(m<=n)
> keys with the largest values.
>
> For example, I have dic that includes n=4 elements, I want m=2 keys
> have the largest values)
> dic = {0:4,3:1,5:2,7:8}
> So, the the largest values are [8,4], so the keys are [7,0].
>
> Is there any fast way to implement this algorithm?
> Any suggestions are welcome!
>
> Best regards,
> Davy

#get a list of tuples, with value in 1st position, key second
li = [(value,key) for key, value in dic.items()]

#sort the list
li.sort()

m = 2
#grab the m highest values, from the end of the list
li_high_keys = [k for v, k in li[-m:]]

p.s. sorry if this ends up appearing multiple times, google groups can
be a bit cranky at times with postings.

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to