Re: List representation using element position
- To: mathgroup at smc.vnet.net
- Subject: [mg72523] Re: [mg72506] List representation using element position
- From: János <janos.lobb at yale.edu>
- Date: Thu, 4 Jan 2007 06:56:22 -0500 (EST)
- References: <200701030639.BAA01288@smc.vnet.net>
Here is a newbie approach:
In[7]:=
Union[({#1, Flatten[Position[
lstln, #1]]} & ) /@
lstln]
Out[7]=
{{1, {6, 7}}, {2, {1, 5}},
{3, {2}}, {4, {3, 4, 9}},
{5, {8}}}
János
On Jan 3, 2007, at 1:39 AM, Dr. Wolfgang Hintze wrote:
> Hello group,
> happy new year to all of you!
>
> This one was put up in a slightly different form by me in March 2006.
> It is now more general and it is lossless with respect to information:
>
> Given a list of integers which may repeat, e.g.
>
> lstIn = {2,3,4,4,2,1,1,5,4}
>
> provide a list of the different values and their respective
> positions in
> the original list. In the example,
>
> LstOut= {
> {1,{6,7}},
> {2,{2,5}},
> {3,{2}},
> {4,{3,4,9}},
> {5,{8}}
> }
>
> Who finds the shortest function doing this task in general?
>
> My solution appears 15 lines below
>
> Thanks.
>
> Best regards,
> Wolfgang
> 1
>
>
>
> 5
>
>
>
>
> 10
>
>
>
>
> fPos[lstIn_] := Module[{f = Flatten /@ (Position[lstIn, #1] & ) /@
> Union[lstIn]}, ({#1, f[[#1]]} & ) /@ Range[Length[f]]]
>
> In[15]:=
> fPos[lstIn]
>
> Out[15]=
> {{1, {6, 7}}, {2, {1, 5}}, {3, {2}}, {4, {3, 4, 9}}, {5, {8}}}
----------------------------------------------
Trying to argue with a politician is like lifting up the head of a
corpse.
(S. Lem: His Master Voice)
- References:
- List representation using element position
- From: "Dr. Wolfgang Hintze" <weh@snafu.de>
- List representation using element position