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