Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2004
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*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: List element replacement.

  • To: mathgroup at smc.vnet.net
  • Subject: [mg52011] Re: [mg51980] List element replacement.
  • From: Tomas Garza <tgarza01 at prodigy.net.mx>
  • Date: Sun, 7 Nov 2004 01:03:28 -0500 (EST)
  • References: <200411060707.CAA25986@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Are the three lists the same Length? If that should be the case, e.g.,

In[1]:=
initial = {0, 3, 4, 6, 8};
compare = {0, 0, 0, 3, 8};
replace = {0, 0, 0, 1, 7};

then the test whether "initial" has to change is based on MemberQ. All three 
elements of the test are True, and only in this case the replacements apply:

In[4]:=
(MemberQ[initial, #1] & ) /@ Union[compare]
Out[4]=
{True,True,True}

The positions of the elements to be replaced in this case are

In[5]:=
replacements = Flatten[(Position[initial, #1] & ) /@
    Union[compare]]
Out[5]=
{1,2,5}

So, in general, the procedure is as follows

In[6]:=
If[Union[(MemberQ[initial, #1] & ) /@
       Union[compare]][[1]] == True,
   initial[[replacements]] = replace[[
     replacements]]];

That is,  "initial" has been changed to

In[7]:=
initial
Out[7]=
{0,0,4,6,7}

Tomas Garza
Mexico City
----- Original Message ----- 
From: "Robert G. Wilson v" <rgwv at rgwv.com>
To: mathgroup at smc.vnet.net
Subject: [mg52011] [mg51980] List element replacement.


> Et al,
>
> HELP, I tried this once before but what I received back I could not make 
> it work.
> Therefore I am following the adage that if at first you do not succeed 
> then wait
> awhile, rethink, restate and resubmit.
>
> I have three lists of objects, sorted but not unioned, that is there are 
> elements
> which will be repeated. Let us label them 'initial' list, 'compare' list, 
> and
> 'replace' list. If all of the elements in the 'compare' list, including 
> repeats,
> are in the 'initial' list, then remove those elements and put in the 
> elements from
> the 'replace' list.
>
> Thank you in advance,
>
> Bob.
> 



  • Prev by Date: Re: Adding Vectors -- Newbie help please
  • Next by Date: Re: dashing the lines make the plot looks so bad
  • Previous by thread: List element replacement.
  • Next by thread: Re: List element replacement.