Re: Modifying every alternate element of a sequence
- From: "Leo Kislov" <Leo.Kislov@xxxxxxxxx>
- Date: 28 Nov 2006 03:26:04 -0800
jm.suresh@xxxxxxxxxxxxxxxxx wrote:
I have a list of numbers and I want to build another list with every
second element multiplied by -1.
input = [1,2,3,4,5,6]
wanted = [1,-2,3,-4,5,-6]
I can implement it like this:
input = range(3,12)
wanted = []
for (i,v) in enumerate(input):
if i%2 == 0:
wanted.append(v)
else:
wanted.append(-v)
But is there any other better way to do this.
Use slices:
input[1::2] = [-item for item in input[1::2]]
If you don't want to do it in-place, just make a copy:
wanted = input[:]
wanted[1::2] = [-item for item in wanted[1::2]]
-- Leo
.
- Follow-Ups:
- Re: Modifying every alternate element of a sequence
- From: bearophileHUGS
- Re: Modifying every alternate element of a sequence
- From: jm.suresh@xxxxxxxxxxxxxxxxx
- Re: Modifying every alternate element of a sequence
- References:
- Modifying every alternate element of a sequence
- From: jm.suresh@xxxxxxxxxxxxxxxxx
- Modifying every alternate element of a sequence
- Prev by Date: SAX2 Download
- Next by Date: os.walk return hex excapes
- Previous by thread: Re: Modifying every alternate element of a sequence
- Next by thread: Re: Modifying every alternate element of a sequence
- Index(es):