Re: altering each member of a list that matches a certain pattern

• To: mathgroup at smc.vnet.net
• Subject: [mg126974] Re: altering each member of a list that matches a certain pattern
• From: David Bailey <dave at removedbailey.co.uk>
• Date: Thu, 21 Jun 2012 05:19:31 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• References: <jrrvjp\$4sn\$1@smc.vnet.net>

```On 20/06/2012 08:54, Jason Ebaugh wrote:
> Good people,
>
>
> I need to alter each member of a list that matches a certain pattern.
> However, I need the whole list back, in its original order.
> So Cases[] on its own doesn't do the trick.
>
> Here is a toy example that is analogous to my real problem:
> Put an asterisk on each value that is 10 or greater in the following list.
>
> list = RandomSample[Range[20], 20]
>
> Out[1]= {19, 16, 5, 13, 10, 20, 1, 3, 18, 8, 9, 6, 12, 7, 4, 15, 11, 14, 2, 17}
>
> I came up with two ways to do this.
> However, I feel like I may be missing a simpler, single function way to do this.
>
> Method 1:
> If[#>  9, SuperStar[#], #]&  /@ list
>
> Out[2]= {SuperStar[19], SuperStar[16], 5, SuperStar[13], SuperStar[10],
> SuperStar[20], 1, 3, SuperStar[18], 8, 9, 6, SuperStar[12], 7, 4,
> SuperStar[15], SuperStar[11], SuperStar[14], 2, SuperStar[17]}
>
>
> Method 2:
> ReplacePart[list,
>   Table[{Position[list, x_ /; x>  9][[i, 1]] ->
>       Map[SuperStar, Cases[list, x_ /; x>  9]][[i]]}, {i,
>      Length[Cases[list, x_ /; x>  9]]}] // Flatten]
>
> Out[3]= {SuperStar[19], SuperStar[16], 5, SuperStar[13], SuperStar[10],
> SuperStar[20], 1, 3, SuperStar[18], 8, 9, 6, SuperStar[12], 7, 4,
> SuperStar[15], SuperStar[11], SuperStar[14], 2, SuperStar[17]}
>
>
> Am I missing a more straightforward way to do this?
>
In[21]:= test = {19, 16, 5, 13, 10, 20, 1, 3, 18, 8, 9, 6, 12, 7, 4,
15, 11, 14, 2, 17}

Out[21]= {19, 16, 5, 13, 10, 20, 1, 3, 18, 8, 9, 6, 12, 7, 4, 15, 11, \
14, 2, 17}

In[22]:= Map[If[# >= 10, SuperStar[#], #, #] &, test]

Out[22]= {SuperStar[19], SuperStar[16], 5, SuperStar[13], \
SuperStar[10], SuperStar[20], 1, 3, SuperStar[18], 8, 9, 6, \
SuperStar[12], 7, 4, SuperStar[15], SuperStar[11], SuperStar[14], 2, \
SuperStar[17]}

David Bailey
http://www.dbaileyconsultancy.co.uk

```

• Prev by Date: Re: altering each member of a list that matches a certain pattern
• Next by Date: Re: plot legend with filling
• Previous by thread: Re: altering each member of a list that matches a certain pattern
• Next by thread: Re: altering each member of a list that matches a certain pattern