Sort dictionary by value when value is a list

major-john iamh2o at gmail.com
Fri Nov 14 13:26:45 EST 2008


I'm having trouble sorting a dictionary based on values when the values are
all lists, and i want to sort the list by key with the largest value lists
in decreasing size.

Currently, I have the following:

from operator import itemgetter

dict = {'A': [(10, 20), (12, 18), (5, 11), (18, 25)], 'C': [(1, 200)], 'B':
[(1, 10), (100, 200), (150, 300), (250, 350), (300, 400)], 'D': [(3, 400)]}

I have tried several methods, and seem to have come closest using:

sorted(self.dict.items(), key=itemgetter(1), reverse=True)

My problem is that this will return the key order A,D,C,B
The order I want is based on the size of the lists each key points to:
B,A,D,C or B,A,C,D

Question:
itemgetter(1) is just returning the value, which is a list.  How do I
specify that I want the values to be sorted by list size?

Thanks!
john





-- 
"We are healthy only to the extent that our ideas are humane." --Killgore
Trout
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20081114/f42e65e2/attachment.html>


More information about the Python-list mailing list