Re: Modifying every alternate element of a sequence
- From: "jm.suresh@xxxxxxxxxxxxxxxxx" <jm.suresh@xxxxxxxxx>
- Date: 28 Nov 2006 04:02:23 -0800
Wow, I was in fact searching for this syntax in the python tutorial. It
is missing there.
Is there a reference page which documents all possible list
comprehensions.
--
Suresh
Leo Kislov wrote:
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: Leo Kislov
- Re: Modifying every alternate element of a sequence
- References:
- Modifying every alternate element of a sequence
- From: jm.suresh@xxxxxxxxxxxxxxxxx
- Re: Modifying every alternate element of a sequence
- From: Leo Kislov
- Modifying every alternate element of a sequence
- Prev by Date: Re: How to increase the speed of this program?
- Next by Date: Re: SAX2 Download
- Previous by thread: Re: Modifying every alternate element of a sequence
- Next by thread: Re: Modifying every alternate element of a sequence
- Index(es):
Relevant Pages
|