[Tutor] sorting complicated lists

Sean 'Shaleh' Perry shaleh@valinux.com
Fri, 23 Jun 2000 16:06:05 -0700 (PDT)


>> 
>> list.sort(lambda a, b: cmp(a[1]['sn'], b[1]['sn'])
>> 
>> a (or b)   = the tuple
>> a[1]       = the dictionary in the tuple
>> a[1]['sn'] = the 'sn' slot in the dictionary
>> 

def ldap-sorter(a, b):
        return cmp(a[1]['sn'], b[1]['sn'])

list.sort(ldap-sorter)

is what is actually happening (more or less).  lamda makes a psuedo function
in-place.  cmp() is analogous to strcmp() in C (and others).  Basically you
want to return -1, 0, or 1.  -1 if a is less than b, 0 is they are equal and 1
is b is less than a.  I may have it backwards with regards to less than v.
greater than.