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@python.org > http://mail.python.org/mailman/listinfo/tutor -- -dave---------------------------------------------------------------- After all, it is not *that* inexpressible. -H.H. The Dalai Lama _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor