Re: Removing list elements in x by list y
- To: mathgroup at smc.vnet.net
- Subject: [mg131142] Re: Removing list elements in x by list y
- From: Alexei Boulbitch <Alexei.Boulbitch at iee.lu>
- Date: Fri, 14 Jun 2013 04:59:55 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
I have simple question.
Given two lists
x = {u, v, w, w, d};
y = {u, d};
I wish to "subtract" y from x, i.e. remove exactly the elements in x
which belong to y giving
x "-" y = {v,w,w}
Complement[] gives instead {v,w}.
Note that we are talking about lists rather than sets.
I'm sure there is a simple standard command, but I can't find it.
Can you?
Regards,
Wolfgang
Hi, Wolfgang,
One way to do this is as follows:
x = {u, v, w, w, d};
y = {u, d};
Delete[x, Flatten[Map[Position[x, #] &, y], 1]]
{v, w, w}
This is another, rule-based way:
x /. a_ /; MemberQ[y, a] -> Sequence[]
{v, w, w}
Have fun, Alexei
Alexei BOULBITCH, Dr., habil.
IEE S.A.
ZAE Weiergewan,
11, rue Edmond Reuter,
L-5326 Contern, LUXEMBOURG
Office phone : +352-2454-2566
Office fax: +352-2454-3566
mobile phone: +49 151 52 40 66 44
e-mail: alexei.boulbitch at iee.lu