Re: Sort problem
- To: mathgroup at smc.vnet.net
- Subject: [mg56330] Re: Sort problem
- From: Jon Harrop <usenet at jdh30.plus.com>
- Date: Fri, 22 Apr 2005 06:23:06 -0400 (EDT)
- References: <d47suf$54n$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
konstantpi at mail15.com wrote: > Hi > How to sort two lists such as: > age={30,12,60,20}; > pple={"john","kate","peter","alice"}; > > to give the output: > age={12,20,30,60} > pple={"kate","alice","john","peter"} > > ie: to keep every person opposite his age number. > thanks Combine the two lists into one list of pairs: In[1]:= data = Transpose[{age, pple}] Out[1]= {{30, john}, {12, kate}, {60, peter}, {20, alice}} Then sort by comparing only the first part of each element: In[1]:= Sort[data, First[#1] < First[#2] &] Out[1]= {{12, kate}, {20, alice}, {30, john}, {60, peter}} The extract the ages and people: In[1]:= {age, pple} = {First /@ data, Last /@ data} Out[1]= {{30, 12, 60, 20}, {john, kate, peter, alice}} -- Dr Jon D Harrop, Flying Frog Consultancy http://www.ffconsultancy.com