Re: match 1, replace 2
- To: mathgroup at smc.vnet.net
- Subject: [mg56242] Re: [mg56199] match 1, replace 2
- From: "David Park" <djmp at earthlink.net>
- Date: Wed, 20 Apr 2005 05:30:24 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Trevor, Here is one solution. ls = {{1, 2, 3}, {4, 5}, {6, 7, 8, 9}}; ls /. s_?VectorQ :> Module[{first = Drop[s, -1], last = Last[s]}, Join[Flatten[{# + 100, -1} & /@ first], {last}]] {{101, -1, 102, -1, 3}, {104, -1, 5}, {106, -1, 107, -1, 108, -1, 9}} David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ From: Trevor Baca [mailto:trevorbaca at gmail.com] To: mathgroup at smc.vnet.net hi mathgroup, what rule takes ls = {{1, 2, 3}, {4, 5}, {6, 7, 8, 9}} to {{101, -1, 102, -1, 3}, {104, -1, 5}, {106, -1, 107, -1, 108, -1, 9}} ie, matches all integers but the last in each list and then replaces each matched integer n with the 2-element sequence Sequence[100 + n, -1]? trevor.