-----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