3
$\begingroup$

Consider the following:

list={{a,b,c},{c,d,e},{d,e,f},...{x_,y_,z_}};

I would like to apply Union on the elements of the list in the following way

Union[{a,b,c},{c,d,e},{d,e,f},...{x_,y_,z_}];

The problem Union[list] does not return the desired result when applied on list. Please consider the following example:

list={{10,2,3},{2,3,4},{2,3,50}};
Union[list]

The same problem occures with Intersection.

(* Out={{10,2,3},{2,3,4},{2,3,50}} *)

Instead of

Union[{10,2,3},{2,3,4},{2,3,50}]
(* Out={2,3,4,10,50} *)
$\endgroup$
3
  • 5
    $\begingroup$ You're looking for Apply? $\endgroup$
    – Rojo
    Apr 19, 2012 at 21:50
  • 1
    $\begingroup$ Union@Flatten@list $\endgroup$
    – F'x
    Apr 19, 2012 at 21:51
  • $\begingroup$ Applyworks. Many thanks $\endgroup$
    – John
    Apr 19, 2012 at 21:52

3 Answers 3

9
$\begingroup$

You're looking for Apply

Mathematica graphics

Apply[Union, list]

which can be written in short form as

Union@@list
$\endgroup$
0
6
$\begingroup$

Union eliminates duplicate elements in a list, or duplicate sublists in a list of lists.

In[9]:= list = {{a, a, a}, {a, a, a}, {d, e, f}};
        Union[list]

Out[10]= {{a, a, a}, {d, e, f}} 

In your example,

list={{10,2,3},{2,3,4},{2,3,50}};                      
Union[list]  

even though parts of the sublists are the same, no sublist was a complete duplicate of any other sublist. So there was nothing for Union to do.

$\endgroup$
2
  • $\begingroup$ +1 for the explanation why the OP's example does not behave as expected. $\endgroup$ Jun 1, 2012 at 9:46
  • $\begingroup$ Welcome to Mathematica.SE and thanks for taking the time to explain this. Please consider registering your account so your reputation score will be preserved and you can access to more features of the site. $\endgroup$
    – Szabolcs
    Jun 1, 2012 at 9:55
5
$\begingroup$

Just stir things up, you can also do the following:

Union[Sequence@@list]

It uses the same function referenced (Map), but makes forces the problem to look like you were expecting:

Union[{a,b,c},{c,d,e},{d,e,f},...{x_,y_,z_}];
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.