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