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>