[Tutor] Group sequence pairwise
Christopher Arndt
chris.arndt at web.de
Sun Feb 25 14:06:55 CET 2007
Luke Paireepinart schrieb:
> Christopher Arndt wrote:
>> I have tried to find a solution, using itertools, but I'm not very
>> experienced in functional stuff, so I got confused.
> Do you mean you're not experienced in using functions or do you mean
> you're inexperienced at functional programming?
I mean functional programming.
> Well, this is fairly simple to do with list comprehensions...
> >>> x = [1,2,3,4,5,6,7]
> >>> if len(x) % 2 != 0: x.append(None)
>
> >>> [(x[a],x[a+1]) for a in range(0,len(x),2)]
> [(1, 2), (3, 4), (5, 6), (7, None)]
I came a up with a similar solution:
for i in xrange(0, len(s), 2):
do_something(s[i])
if i+1 <= len(s):
do_something(s[i+1])
else:
do_something(None)
or
try:
for i in xrange(0, len(s), 2):
do_something(s[i])
do_something(s[i+1])
except IndexError:
do_something(None)
raise StopIteration
> Dunno if that's what you're after,
Not exactly. I wonder if this is possible without modifying the original
sequence (could be not a list too) and I'd also like to find a solution
that generally applies to iterables.
Chris
More information about the Tutor
mailing list