Re: Applying "Replace" to subsets of lists
- To: mathgroup at smc.vnet.net
- Subject: [mg129192] Re: Applying "Replace" to subsets of lists
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Thu, 20 Dec 2012 03:24:21 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
On 12/19/12 at 4:55 AM, abed.alnaif at gmail.com wrote:
>Hello, Say I have the following list, and I'd like to replace the
>second 'b' with the value 1, leaving the first b untouched:
>MagicFunction[{{b, 2}, b}] = {{b, 2}, 1}
>How do I do this? I've tried the following:
>This doesn't work since it replaces both 'b' In: {{b, 2}, b} /. b ->
>1 Out: {{1, 2}, 1}
>This works: In: {{b, 2}, b} /. {{x_, y_}, b} -> {{x, y}, 1} Out:
>{{b, 2}, 1}
>However, 'b' may appear in different forms, in which case the
>previous approach fails: In: {{b, 2}, b^2} /. {{x_, y_}, b} -> {{x,
>y}, 1} Out: {{b, 2}, b^2}
Here is one approach
In[5]:= {{b, 2}, b} /. a_ :> {First[a], Last[a] /. b -> 1}
Out[5]= {{b,2},1}
In[6]:= {{b, 2}, b - 1} /. a_ :> {First[a], Last[a] /. b -> 1}
Out[6]= {{b,2},0}
In[7]:= {{b, 2}, b^2} /. a_ :> {First[a], Last[a] /. b -> 1}
Out[7]= {{b,2},1}