RE: easiest way to sort a list?

• To: mathgroup at smc.vnet.net
• Subject: [mg18323] RE: [mg18308] easiest way to sort a list?
• From: "Ersek, Ted R" <ErsekTR at navair.navy.mil>
• Date: Sat, 26 Jun 1999 19:08:02 -0400
• Sender: owner-wri-mathgroup at wolfram.com

```Peter (peterw at cco.caltech.edu) wrote:
-------------------
Suppose you have a list of integers, not all distinct, say
{1, 5, 3, 5, 10, 10, 1},

and you want to obtain the list

{1, 5, 3, 10}

which is the set of distinct elements but with the order preserved; i.e.,
the order in which the elements in the second list appear is the same as
the order in which it first occurs in the first list.  What is a simple
way to do this?  Evidently Union[] sorts the elements in canonical order,
which is not desirable.  My current solution is so messy that I suspect
there must be an easier way.

------------------------

Peter,

Robby Villegas posted a slick solution to this problem in this newsgroup.
See [mg8265] from 23, August 1997.
-----------------------

In[1]:=
RestoreOrder[subset_, list_] := Last /@ Sort[ {Position[list, #, {1}, 1][[1,
1]], #}& /@ subset ] ;
EliminateRepetition[list_List] := RestoreOrder[Union[list], list]

In[3]:=
EliminateRepetition[{1,5,3,5,10,10,1}]

Out[3]=
{1,5,3,10}

This works for any list, not just a list of integers, numbers, etc.

Regards,
Ted Ersek

```

• Prev by Date: Re: easiest way to sort a list?
• Next by Date: Re: easiest way to sort a list?
• Previous by thread: Re: easiest way to sort a list?
• Next by thread: Re: easiest way to sort a list?