MathGroup Archive 2010

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

Search the Archive

Re: List of multiple elements

  • To: mathgroup at smc.vnet.net
  • Subject: [mg112048] Re: List of multiple elements
  • From: Adriano Pascoletti <adriano.pascoletti at uniud.it>
  • Date: Fri, 27 Aug 2010 04:06:46 -0400 (EDT)

Something like this?


In[1]:= a = {1, 1, 2, 1, 2};
In[2]:= Tally[a]
Out[2]= {{1, 3}, {2, 2}}
In[3]:= Tally[a] /. {i_, n_ /; n > 1} :> Sequence @@ ConstantArray[i, n - 1]
Out[3]= {1, 1, 2}


Adriano Pascoletti

2010/8/26 Dr. Wolfgang Hintze <weh at snafu.de>

> Given the list
>
> a={1,1,2,1,2};
>
> we can reduce multiple instances of elements using
>
> b=Union[a]
> {1,2}
>
> The question is now how to compute the list of multiple elements.
> In our example this would be m={1,1,2}.
>
> A possible solution is
>
> m[x_]:= Flatten[Take[#, {1, Length[#] - 1}] & /@ Select[Split[x],
> Length[#] > 1 &]]
>
> m[a]
> {1,1,2}
>
> I'm sure there is a much more elegant solution. Can you suggest one?
>
> Remark
>
> m[a] can be viewed as a kind of difference: m[a] = a "MINUS" Union[a]
> Inverting gives the "SUM": a = m[a] "PLUS" Union[a] =
> Join[m[a],Union[a]]
>
> Regards,
> Wolfgang
>
>
>


  • Prev by Date: Re: List of multiple elements
  • Next by Date: Re: List of multiple elements
  • Previous by thread: Re: List of multiple elements
  • Next by thread: Re: List of multiple elements