RE: Selecting by first element of each list
- To: mathgroup at smc.vnet.net
- Subject: [mg48135] RE: [mg48130] Selecting by first element of each list
- From: "Wolf, Hartmut" <Hartmut.Wolf at t-systems.com>
- Date: Fri, 14 May 2004 20:58:50 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
>-----Original Message----- >From: camartin at snet.net [mailto:camartin at snet.net] To: mathgroup at smc.vnet.net >Sent: Friday, May 14, 2004 6:12 AM >To: mathgroup at smc.vnet.net >Subject: [mg48135] [mg48130] Selecting by first element of each list > > >Hi, > >I'm trying to learn to handle a flat file kind of database using >Mathematica. An example is the list of lists below: > >{{2,3,4,5,77},{2,4,5,66,77},{3,4,7,8,90,6},{3,5,6,7,8,0},{3,45, >67,77,12}} > >It's actually more complicated than this but good enough for >illustrative purposes. The first element in each list is actually an >identifier, like an account number. I want to create a list of lists >with each account, that is, > >{{{2,3,4,5,77},{2,4,5,66,77}}, >{{3,4,7,8,90,6},{3,5,6,7,8,0},{3,45,67,77,12}}}. > >When I use Select with an anonymous function such as > >Select[list1,#1[[1]] = = #2[[1]]&] > >I get an error because it stops (of course) after the first >two lists. I >get the right grouping for the first list but it doesn't >finish. I don't >understand how to use the anonymous function to go through my >list (it's >got several thousand entries) and select and group by the >first element >in each group. I've been through the archive but nothing there >quite helps. > >I would appreciate some direction. > >Thanks > >Cliff > > > Sort/Split: In[38]:= Split[Sort[{{2, 3, 4, 5, 77}, {2, 4, 5, 66, 77}, {3, 4, 7, 8, 90, 6}, {3, 5, 6, 7, 8, 0}, {3, 45, 67, 77, 12}}], First[#1] === First[#2] &] Out[38]= {{{2, 3, 4, 5, 77}, {2, 4, 5, 66, 77}}, {{3, 45, 67, 77, 12}, {3, 4, 7, 8, 90, 6}, {3, 5, 6, 7, 8, 0}}} -- Hartmut Wolf