Services & Resources / Wolfram Forums
MathGroup Archive
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2004

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

Search the Archive

Re: Return different values of a list

  • To: mathgroup at
  • Subject: [mg49435] Re: [mg49425] Return different values of a list
  • From: Andrzej Kozlowski <akoz at>
  • Date: Tue, 20 Jul 2004 07:53:25 -0400 (EDT)
  • References: <>
  • Sender: owner-wri-mathgroup at

[Numerous people posted similar messages about Union after 
 this one.  Those will not be posted. -- Moderator]

On 19 Jul 2004, at 20:46, Dr. Wolfgang Hintze wrote:

> *This message was transferred with a trial version of CommuniGate(tm) 
> Pro*
> Given a list containing repeating values like e.g.
> x={a,b,c,a,c}
> I would like to produce a list containing each element just once
> i.e.
> y={a,b,c}
> What is the easiest way to accomplish this?
> Wolfgang
This is a classic question on this list. The "easiest" way is to take 



but that sorts the elements. So if you do not want them to be sorted 
than there are lots of possibilities, whose merits depend on the nature 
of your list. The classic answer is Carl Woll's OrderedUnion


Another approach (with a different evaluation order) uses Hold:

OrderedUnionH[li_] := ReleaseHold[Block[{i},
       i[n_] := (i[n] = Hold[]; n); i /@ li]]

Other approaches will be faster for numerical lists. It really depends 
on what sort of problem you want to use it on.

Andrzej Kozlowski
Chiba, Japan

  • Prev by Date: Re: ArcCos[x] with x > 1
  • Next by Date: Question about shape of histogram of minimal prime partition p's
  • Previous by thread: Re: Return different values of a list
  • Next by thread: Re: Return different values of a list