Re: Apply a function to parts of a list
- To: mathgroup at smc.vnet.net
- Subject: [mg110311] Re: Apply a function to parts of a list
- From: "Carl K. Woll" <carlw at wolfram.com>
- Date: Sun, 13 Jun 2010 04:09:09 -0400 (EDT)
On 6/12/2010 5:32 AM, Rui wrote:
> I have always done very ugly code when trying to do something
> seemingly simple and basic such as applying a function to subparts of a list.
> Simple example, I want to divide by 2 all the second elements of a
> list
> {{a, 5}, {b, 6}, ...} --> {{a, 5/2}, ...}
>
> My ideas:
> Transpose -> MapAt/Map -> Transpose
> Build the sublist with Part and then rebuild it
> Use Map and a function like #[[All, 2]] and then rebuild it.
>
> I don't like any solution. I wanted to know if there's anything simple
> that I'm overseing
>
> Thanks guys
>
>
With:
list = {{a, 5}, {b,6}, {c,7}};
You can do:
list[[All,2]] /= 2
and list will have all second elements cut in half.
In[114]:= list
Out[114]= {{a, 5/2}, {b, 3}, {c, 7/2}}
Carl Woll
Wolfram Research