sorting a list of lists
Tuomas
tuomas.vesterinen at pp.inet.fi
Mon Aug 27 16:42:15 EDT 2007
>>> records = [['dog',1,2], ['chair',2,1], ['cat',1,3], ['horse',3,4],
... ['table',3,2], ['window',3,5]]
>>> sorted(records, key = lambda x: (x[1], x[2]))
[['dog', 1, 2], ['cat', 1, 3], ['chair', 2, 1], ['table', 3, 2],
['horse', 3, 4], ['window', 3, 5]]
nicksavill at googlemail.com wrote:
> Hi,
>
> i would like to sort a list of lists. The list is first sorted on the
> second item in the sub-lists (which I can do), then on the third item
> (which I can't).
>
> eg. records = [['dog',1,2], ['chair',2,1], ['cat',1,3], ['horse',3,4],
> ['table',3,2], ['window',3,5]]
>
> I want sorted to [['dog',1,2], ['cat',1,3], ['chair',2,1], ['table',
> 3,2], ['horse',3,4], ['window',3,5]]
>
> To sort on the second item in the sub-lists I do the following
>
> pass1 = itemgetter(1)
> sorted(records, key=pass1)
>
> How can I then sort on the third item in the sub-lists whilst keeping
> the order on the second item?
>
> Nick
>
More information about the Python-list
mailing list