MathGroup Archive 1998

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

Search the Archive

Re: ReplacePart?



> 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."
>
>
> I can't get this to work at all. If someone could explain how to do this
> sort of thing, using ReplacePart or otherwise, I would be most
> grateful.
>
> Scott Morrison
> scott@morrison.fl.net.au

Here's one method.

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

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

In[3]:= sub[p_, b_] := Which[p === {}, b[[j++]],
                             ListQ[p], Map[sub[#, b] &, p],
                             True, p]

In[4]:= j = 1; sub[gt, b]

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

There are lots of other methods.

Dave Withoff
Wolfram Research



  • Prev by Date: Re: lists
  • Next by Date: Re: Plotting vector-valued functions
  • Prev by thread: ReplacePart?
  • Next by thread: Re: ReplacePart?