[Tutor] sorting a list of dictionaries

Karl Pflästerer sigurd at 12move.de
Thu Dec 9 20:18:54 CET 2004


On  9 Dez 2004, ljholish at speakeasy.net 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'.

As a function:

def sort_it (lst, field):
    lst.sort(lambda m, n: cmp(m.get(field), n.get(field)))


   Karl
-- 
Please do *not* send copies of replies to me.
I read the list



More information about the Tutor mailing list