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