MathGroup Archive 2007

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

Search the Archive

List representation using element position

  • To: mathgroup at smc.vnet.net
  • Subject: [mg72506] List representation using element position
  • From: "Dr. Wolfgang Hintze" <weh at snafu.de>
  • Date: Wed, 3 Jan 2007 01:39:12 -0500 (EST)
  • Organization: privat

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}}}


  • Prev by Date: Re: RE: Combining surfaces
  • Next by Date: Re: RE: Combining surfaces
  • Previous by thread: Re: webMathematica problem
  • Next by thread: Re: List representation using element position