Order by value in dictionary

Abandoned besturk at gmail.com
Wed Oct 17 11:09:50 EDT 2007


Very very thanks everbody..

These are some method..
Now the fastest method is second..

==== 1 ===
def sortt(d):
    items=d.items()
    backitems=[ [v[1],v[0]] for v in items]
    backitems.sort()
    #boyut=len(backitems)
    #backitems=backitems[boyut-500:]
    a=[ backitems[i][1] for i in range(0,len(backitems))]
    a.reverse()
    return a

==== 2 =====
import operator
def sortt(d):
    backitems=d.items()
    boyut=len(backitems)
    backitems=backitems[boyut-500:]
    backitems=sorted(backitems, key=operator.itemgetter(1))
    a=[ backitems[i][0] for i in range(0,len(backitems))]
    a.reverse()
    return a

==== 3 =====
def sortt(d):
    backitems=d.items()
    backitems.sort(lambda x,y:cmp(x[1],y[1]))
    backitems=sorted(backitems, key=operator.itemgetter(1))
    a=[ backitems[i][0] for i in range(0,len(backitems))]
    a.reverse()
    return a

====== 4 =======
import heapq

def sortt(d):
    backitems=d.items()
    backitems=heapq.nlargest(1000, backitems, operator.itemgetter(1))
    a=[ backitems[i][0] for i in range(0,len(backitems))]
    a.reverse()
    return a




More information about the Python-list mailing list