Re: Modifying every alternate element of a sequence
- From: bearophileHUGS@xxxxxxxxx
- Date: 28 Nov 2006 12:08:36 -0800
Leo Kislov:
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]]
Very nice solution.
I have tried few versions like:
from itertools import imap, islice
from operator import neg
1) data[1::2] = [-el for el in data[1::2]]
2) data[1::2] = map(neg, data[1::2])
3) data[1::2] = imap(neg, data[1::2])
4) data[1::2] = map(neg, islice(data, 1, None, 2))
5) etc.
With Python 2.5 it seems that the n.2 (map + slicing) is the faster.
Bye,
bearophile
.
- 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: IEC Controller and <head> element
- Next by Date: Re: Simple text parsing gets difficult when line continues to next line
- 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
|