RE: Selecting by first element of each list

• To: mathgroup at smc.vnet.net
• Subject: [mg48226] RE: [mg48130] Selecting by first element of each list
• From: "David Park" <djmp at earthlink.net>
• Date: Tue, 18 May 2004 04:17:26 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```Cliff,

Use Split. The only question is how you want to sort the records. You may
need a sort test, or you may need to pad the short records.

Here is an example with an unsorted list.

testlist = {{2, 3, 4, 5, 77}, {3, 45, 67, 77, 12}, {3, 5, 6, 7, 8, 0}, {3,
4,
7, 8, 90, 6}, {2, 4, 5, 66, 77}};

Split[Sort[testlist], Part[#1, 1] == Part[#2, 1] &]
{{{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}}}

David Park

From: camartin at snet.net [mailto:camartin at snet.net]
To: mathgroup at smc.vnet.net

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

```

• Prev by Date: Re: colored alphabet for string output
• Next by Date: RE: Re: Finding errors in my code?
• Previous by thread: Re: Selecting by first element of each list
• Next by thread: Re: Yet another simple question.