Newbie Question: "How can I sort the dictionary by values() instead of keys()?"

Cliff Crawford cjc26 at nospam.cornell.edu
Tue May 16 18:56:00 EDT 2000


* Jae-Min Shin <shinj at pop.nci.nih.gov> menulis:
| Hi, I am learning python.
| 
| In  python book (Quick Python Book), I found that sorting a dictionary
| according to keys() can be done by converting it into a list, as shown
| below.. But, I don't know how to sort it by values:

You can pass a sorting function as an argument to sort() which compares
the second element of the (key, value) tuples:

def compare_second_elem(x, y):
    return cmp(x[1], y[1])
dic_ordered.sort(compare_second_elem)

cmp() is a built-in function which returns -1 if x<y, 0 if x=y, or 1 if
x>y.  

You can also do the same thing as a one-liner, using lambda:

dic_ordered.sort(lambda x, y: cmp(x[1], y[1]))


-- 
cliff crawford    -><-    http://www.people.cornell.edu/pages/cjc26/
"One man's nirvana is another man's map."              icq 68165166



More information about the Python-list mailing list