Re: Sorting nested lists with strings
- To: mathgroup at smc.vnet.net
- Subject: [mg116287] Re: Sorting nested lists with strings
- From: "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com>
- Date: Thu, 10 Feb 2011 05:20:14 -0500 (EST)
- References: <iitejq$jib$1@smc.vnet.net>
I'm not sure why you think Sort sorts on the second field of the list. It doesn't: In[534]:= list = {{"Paul", 23}, {"Amanda", 5}, {"Carl", 32}}; In[535]:= Sort[list] Out[535]= {{"Amanda", 5}, {"Carl", 32}, {"Paul", 23}} If you'd like to sort on another field (say the second) you could change the ordering function of Sort or change a similar function in Sortby (check the documentation; Sort and SortBy use slightly different principles): In[536]:= Sort[list, OrderedQ[{#1[[2]], #2[[2]]}] &] Out[536]= {{"Amanda", 5}, {"Paul", 23}, {"Carl", 32}} In[537]:= SortBy[list, #[[2]] &] Out[537]= {{"Amanda", 5}, {"Paul", 23}, {"Carl", 32}} Cheers -- Sjoerd On Feb 9, 8:09 am, Paperorbifold <kgodelNOS... at liberoNOSPAM.it> wrote: > I've a nested list of this kind: > list={{"Paul",23},{"Amanda",55},{"Carl",32},...} > Suppose I want to perform an alphabetic sort on the first element. Which is > the condition I've to write in Sort[list,...]? > Actually Sort[list] automatically operates on the second element. > Thanks. > > -- > ...and I will make them pay for\nwhat they've done! (J.L. Picard)