Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1998
*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 1998

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

Search the Archive

Re: ReplacePart?



Scott Morrison <scott@morrison.fl.net.au>

> I have a list of pairs of the form:
> gt={{3,5},{{},6},{7,{}},{{},{}},{{},56},{{},3}};
> 
> The empty lists inside pairs are being used as placeholders. I want to
> replace these with the elements of b: b={a1,a2,a3,a4,a5,a6}; hopefully
> resulting in the list
> {{3,5},{a1,6},{7,a2},{a3,a4},{a5,56},{a6,3}}
> 
> I had thought that ReplacePart could do this, as it says:
> "ReplacePart[expr, new, pos, npos] replaces parts at positions pos in
> expr by parts at positions npos in new."

Give this a try:

In[1]:=
gt={{3,5},{{},6},{7,{}},{{},{}},{{},56},{{},3}};

In[2]:=
b={a1,a2,a3,a4,a5,a6};

In[3]:=
q = Transpose @ {b,Position[gt,{}]}

Out[3]=
{{a1,{2,1}},{a2,{3,2}},{a3,{4,1}},{a4,{4,2}},{a5,{5,1}},{a6,{6,1}}}

In[4]:=
Fold[ReplacePart[#1,Sequence @@ #2]&,gt,q]

Out[4]=
{{3,5},{a1,6},{7,a2},{a3,a4},{a5,56},{a6,3}}

--
P.J. Hinton
Mathematica Programming Group           paulh@wolfram.com Wolfram
Research, Inc.                  http://www.wolfram.com/~paulh/
Disclaimer: Opinions expressed herein are those of the author alone.




  • Prev by Date: RE: List Manipulation
  • Next by Date: RE: Derivative via mathematica
  • Prev by thread: Re: ReplacePart?
  • Next by thread: Re: ReplacePart?