MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Replace list element based on a condition how to

  • To: mathgroup at smc.vnet.net
  • Subject: [mg106666] Re: [mg106630] Replace list element based on a condition how to
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Wed, 20 Jan 2010 06:50:59 -0500 (EST)
  • Reply-to: hanlonr at cox.net

lst1 = {18, 19, 20, 21, 22, 23, 0, 1, 2, 3};

fncHourFix[h_] := If[(h - 6) < 0, h - 6 + 24, h - 6];

lst2 = lst1 /. h_?NumericQ -> fncHourFix[h]

{12,13,14,15,16,17,18,19,20,21}

lst2 = fncHourFix /@ lst1

{12,13,14,15,16,17,18,19,20,21}

lst2 = Mod[lst1 + 18, 24]

{12,13,14,15,16,17,18,19,20,21}


Bob Hanlon

---- Canopus56 <canopus56 at yahoo.com> wrote: 

=============
Q1. Is there a way to replace a list based on a condition? 

I have a list of integers - 

lst1 = {18, 19, 20, 21, 22, 23, 0, 1, 2, 3} 

that I would like to replace with the following rule - 

fncHourFix[h_] := If[(h - 6) < 0, h - 6 + 24, h - 6];

but the replace function - 

lst2 = lst1 /. {i_} :> fncHourFix[{i}] 

- bombs out. 

I've tried several variants.

Any pointers would be appreciated. 

Thanks - Kurt 




  • Prev by Date: Pagination when transferring Mathematica docs to PDF
  • Next by Date: StringCases matching on portions of sublist?
  • Previous by thread: Re: Replace list element based on a condition how to
  • Next by thread: Re: Replace list element based on a condition how to