Re: Replace
- To: mathgroup at smc.vnet.net
- Subject: [mg121078] Re: Replace
- From: "Oleksandr Rasputinov" <oleksandr_rasputinov at hmamail.com>
- Date: Fri, 26 Aug 2011 05:24:37 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <j35am1$og8$1@smc.vnet.net>
On Thu, 25 Aug 2011 12:12:01 +0100, Sam Korn <sam at kornfamily.com> wrote: > Hi, another stupid question. I have a list, and each element in the list > is > a sublist with a pair of integers. How do I replace each element along > the > lines of "{5,6}" with "(5|6)"? > > I know it's a stupid question, and there's probably something really > obvious > I'm missing, but I'm really new to Mathematica. > > Thanks! > -Sam In[1] := list = RandomInteger[{-5, 5}, {10, 2}] Out[1] = {{-4, -4}, {-1, -3}, {4, 4}, {0, -4}, {-5, 3}, {-5, 4}, {-1, -2}, {5, -2}, {1, -1}, {-4, 1}} In[2] := list /. {x_, y_} :> (x | y) Out[2] = {-4 | -4, -1 | -3, 4 | 4, 0 | -4, -5 | 3, -5 | 4, -1 | -2, 5 | -2, 1 | -1, -4 | 1} ("/." is a sigil used in infix notation to denote the function ReplaceAll. ":>" is RuleDelayed in the same sense.) It's unclear to me if the above is what you intended; (x | y) is understood by Mathematica as a pattern which matches either x or y. If you had wanted something that simply displays as such without having any particular meaning you may instead use In[3] := list /. {x_, y_} :> StringForm["(`1`|`2`)", x, y] Out[3] = {(-4|-4),(-1|-3),(4|4),(0|-4),(-5|3),(-5|4),(-1|-2),(5|-2),(1|-1),(-4|1)} or perhaps In[4] := Format@customizedElement[x_, y_] := StringForm["(`1`|`2`)", x, y]; customizedElement @@@ list Out[4] = {(-4|-4),(-1|-3),(4|4),(0|-4),(-5|3),(-5|4),(-1|-2),(5|-2),(1|-1),(-4|1)} which has the advantage of allowing other operations to be defined on customizedElement if desired.