[Tutor] Group sequence pairwise

David Perlman dperlman at wisc.edu
Sun Feb 25 14:36:07 CET 2007


I found this by "using Google".  You should be able to make a simple  
modification (I can think of a couple of ways to do it) to have it  
pad the end with "None".  It is 100% iterator input and output.

http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/303279

On Feb 25, 2007, at 7:06 AM, Christopher Arndt wrote:

> 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
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor

--
-dave----------------------------------------------------------------
After all, it is not *that* inexpressible.
-H.H. The Dalai Lama





More information about the Tutor mailing list