MathGroup Archive 2006

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

Search the Archive

Re: Extract values and multilpicities from list

  • To: mathgroup at smc.vnet.net
  • Subject: [mg64875] Re: [mg64849] Extract values and multilpicities from list
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Mon, 6 Mar 2006 05:01:32 -0500 (EST)
  • Reply-to: hanlonr at cox.net
  • Sender: owner-wri-mathgroup at wolfram.com

lstIn={2,3,4,4,2,1,1,5,4};

{#,Count[lstIn,#]}&/@Union@lstIn

{{1, 2}, {2, 2}, {3, 1}, {4, 3}, {5, 1}}

{#[[1]],Length[#]}&/@Split@Sort@lstIn

{{1, 2}, {2, 2}, {3, 1}, {4, 3}, {5, 1}}

%==%%

True

While the first method is slightly shorter, the second method is considerably 
faster.

lstIn=Table[Random[Integer,{1,5}],{10000}];

Timing[{#,Count[lstIn,#]}&/@Union@lstIn]

{0.031166999999999945*Second, {{1, 2017}, {2, 2047}, 
   {3, 1987}, {4, 1978}, {5, 1971}}}

Timing[{#[[1]],Length[#]}&/@Split@Sort@lstIn]

{0.00836400000000026*Second, {{1, 2017}, {2, 2047}, 
   {3, 1987}, {4, 1978}, {5, 1971}}}

{%[[2]]==%%[[2]],%%[[1]]/%[[1]]}

{True,3.72633}


Bob Hanlon

> 
> From: "Dr. Wolfgang Hintze" <weh at snafu.de>
To: mathgroup at smc.vnet.net
> Subject: [mg64875] [mg64849] Extract values and multilpicities from list
> 
> Given a list of integers which may repeat, e.g.
> 
> lstIn = {2,3,4,4,2,1,1,5,4}
> 
> provide a list of different values and their respective multiplicities,
> in the example,
> 
> LstOut= {{1,2},{2,2},{3,1},{4,3},{5,1}}
> 
> Who finds the shortest function doing this task in general?
> 
> Thanks.
> 
> Best regards,
> Wolfgang
> 
> 


  • Prev by Date: Re: Extract values and multilpicities from list
  • Next by Date: FindRoot Secant Method
  • Previous by thread: Re: Extract values and multilpicities from list
  • Next by thread: Re: Extract values and multilpicities from list