MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Simple list operation

  • To: mathgroup at smc.vnet.net
  • Subject: [mg59482] Re: [mg59420] Simple list operation
  • From: János <janos.lobb at yale.edu>
  • Date: Wed, 10 Aug 2005 02:58:14 -0400 (EDT)
  • References: <200508090730.DAA19079@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

On Aug 9, 2005, at 3:30 AM, Steve Gray wrote:

>
> Not having used Mathematica for months, I have forgotten some of  
> the little I knew.
>
> I have a list of lists like this:
>
> test = {  {{4, 5}, {5, 9}, {6, 2}},
>      {{2, 3},  {3, 5}},
>      {{7,1}, {9, 8}, {0, 7}, {2, 8}},
>      {{4, 3}, {6, 5}}};
> test // ColumnForm
>               {{{4, 5}, {5, 9}, {6, 2}},
>                 {{2, 3}, {3, 5}},
>                 {{7, 1}, {9, 8}, {0, 7}, {2, 8}},
>                 {{4, 3}, {6, 5}}}
>
> What I want to do is just remove the last element in each sublist,  
> with this result:
>
>            {{{4, 5}, {5, 9}},
>              {{2, 3}},
>              {{7, 1}, {9, 8}, {0, 7}},
>              {{4, 3}}}
>
> There must be some simple functional way to do this, but I haven't  
> found it.
> I will appreciate any tips. Thank you.
>
> Steve Gray
>

Here is a tip.

In[32]:=
a = Table[i, {i, 1,
     Length[test]}]
Out[32]=
{1, 2, 3, 4}

In[20]:=
b = (Length[#1] & ) /@ test -
    1
Out[20]=
{2, 1, 3, 1}

In[33]:=
c = Thread[{a, b}]
Out[33]=
{{1, 2}, {2, 1}, {3, 3},
   {4, 1}}

In[37]:=
Table[Take[test[[c[[i,1]]]],
    c[[i,2]]], {i, 1,
    Length[test]}]
Out[37]=
{{{4, 5}, {5, 9}}, {{2, 3}},
   {{7, 1}, {9, 8}, {0, 7}},
   {{4, 3}}}

I am sure there is a simpler way to do it.

János


----------------------------------------------
Trying to argue with a politician is like lifting up the head of a  
corpse.
(S. Lem: His Master Voice)


  • Prev by Date: Re: <<RealTime3D`
  • Next by Date: Re: Some bugs in Mathematica
  • Previous by thread: Re: Simple list operation
  • Next by thread: Re: Simple list operation