[Tutor] Sorting 2-d data

Patrick Sabin patrick.just4fun at gmail.com
Sun Sep 13 21:19:24 CEST 2009


  > But for sorting the list with the first element as key, I tried it 
using
> just mylist.sort() without the lambda, and its working also. Then why 
> use the lambda?
> 

There is a little difference between those two variations.
Example:

 >>> sorted([[1,2],[1,3],[1,1]])
[[1, 1], [1, 2], [1, 3]]
 >>> sorted([[1,2],[1,3],[1,1]], key=lambda x:x[0])
[[1, 2], [1, 3], [1, 1]]

For sorting it is necessary to compare items. So for example [1,1] is 
compared to [1,2]

As you see:
 >>> [1,1] < [1,2]
True

If you apply the lambda things change:
 >>> (lambda x: x[0])([1,1])<(lambda x:x[0])([1,2])
False
 >>> (lambda x: x[0])([1,1])==(lambda x:x[0])([1,2])
True

This is because now only the first item of the list is compared.

- Patrick

> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor



More information about the Tutor mailing list