Ken, I misspoke when I said these were lists of dictionaries, they are actually lists of object that have a "getSize()" getter function that returns the size of their contents, which I would like to use for sorting.
Thank You, John A. Gooch Systems Administrator IT - Tools EchoStar Satellite L.L.C. 9601 S. Meridian Blvd. Englewood, CO 80112 Desk: 720-514-5708 -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kent Johnson Sent: Wednesday, April 13, 2005 3:52 AM Cc: tutor@python.org Subject: Re: [Tutor] sorting a list of dictionaries > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: Thursday, December 09, 2004 12:19 PM > To: tutor@python.org > Subject: Re: [Tutor] sorting a list of dictionaries > > > On 9 Dez 2004, [EMAIL PROTECTED] wrote: > > >>I have a list of dictionaries, each representing info about a file, >>something like: >> >>[{'name':'foo.txt','size':35}, {'name':'bar.txt','size':35}, ...] >> >>I want to present a sorted list of all the files' data, sorting on the >>keys 'name' or 'size'. The file 'name' s should be unique (I'm hoping) >>across all the dictionaries. Can someone point me towards an efficient >>solution for accomplishing the sort? (The list has 1000s of files). > > > That's easy to achieve, since sort takes a custom sort function as > optional argument. Now you need only a function which takes the > values of the fileds and compares them. > > E.g. > > lst.sort(lambda m, n: cmp(m.get(field), n.get(field))) > where field is either 'name' or 'size'. In Python 2.4 a more efficient way of doing this is to use the key parameter to sort() with an itemgetter function: from operator import itemgetter lst.sort(key=itemgetter('field')) Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor