On 22 Nov 2005 07:42:31 -0800, "George Sakkis" <[EMAIL PROTECTED]> wrote:
>"Laurent Rahuel" wrote: > >> Hi, >> >> newList = zip(aList[::2], aList[1::2]) >> newList >> [('a', 1), ('b', 2), ('c', 3)] >> >> Regards, >> >> Laurent > >Or if aList can get very large and/or the conversion has to be >performed many times: > >from itertools import islice >newList = zip(islice(aList,0,None,2), islice(aList,1,None,2)) > Or, if you want to include fractional groups at the end >>> aList = ['a', 1, 'b', 2, 'c', 3] >>> from itertools import groupby >>> def grouper(n): ... def git(): ... while True: ... for _ in xrange(n): yield 0 ... for _ in xrange(n): yield 1 ... git = git() ... def grouper(_): return git.next() ... return grouper ... >>> [tuple(g) for _, g in groupby(aList, grouper(2))] [('a', 1), ('b', 2), ('c', 3)] >>> [tuple(g) for _, g in groupby(aList, grouper(3))] [('a', 1, 'b'), (2, 'c', 3)] >>> [tuple(g) for _, g in groupby(aList, grouper(4))] [('a', 1, 'b', 2), ('c', 3)] Regards, Bengt Richter -- http://mail.python.org/mailman/listinfo/python-list