Re: Operating on every k-th element of list?

*To*: mathgroup at smc.vnet.net*Subject*: [mg37083] Re: Operating on every k-th element of list?*From*: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>*Date*: Wed, 9 Oct 2002 05:25:28 -0400 (EDT)*Organization*: Universitaet Leipzig*References*: <anufl8$ap2$1@smc.vnet.net>*Reply-to*: kuska at informatik.uni-leipzig.de*Sender*: owner-wri-mathgroup at wolfram.com

Hi, something like: With[{k=3}, Flatten[ {#[[2]] + c*#[[1]], #[[3]]} & /@ Partition[lst, k, k, {1, 1}], 1] ] ?? Regards Jens AES wrote: > > I want to apply a function to every k-th element of a long list and > add the result to the k+1 element. > > [Actually k = 3 and I just want to multiply myList[[k]] by a > constant (independent of k) and add the result to myList[[k+1]] for > every value of k that's divisible by 3.] > > Is there a way to do this -- or in general to get at every k-th > element of a list -- that's faster and more elegant than writing a brute > force Do[] loop or using Mod[] operators, and that will take > advantage of native List operators, but still not be too recondite? > > I've been thinking about multiplying a copy of myList by a "mask list" > {0,0,1,0,0,1,..} to generate a "masked copy" and approaches like that. > Better ways???