Re: Better Way of Testing and Replacing List Elements?
- To: mathgroup at smc.vnet.net
- Subject: [mg103980] Re: [mg103949] Better Way of Testing and Replacing List Elements?
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Wed, 14 Oct 2009 07:57:11 -0400 (EDT)
- Reply-to: hanlonr at cox.net
xxx = {1, 2, 3, 4, 5, -6, -7, 8, 9, 10, -1, 11, 12}; ReplacePart[xxx, Position[Map[Negative, xxx], True] -> 0] {1,2,3,4,5,0,0,8,9,10,0,11,12} Max[#, 0] & /@ xxx {1,2,3,4,5,0,0,8,9,10,0,11,12} xxx /. (x_ /; x < 0) -> 0 {1,2,3,4,5,0,0,8,9,10,0,11,12} % == %% == %%% True Bob Hanlon ---- careysub <careysub at gmail.com> wrote: ============= The code below replaces the negative values in a list with zero, and is an example of a type of operation I use a lot: xxx = {1, 2, 3, 4, 5, -6, -7, 8, 9, 10, -1, 11, 12}; ReplacePart[xxx, Position[Map[Negative, xxx], True] -> 0] Is there a "better" way of doing this (fewer function calls, more efficient)? My feeling is that I'm doing this in an awkward way.