On Apr 4, 4:53 pm, [EMAIL PROTECTED] wrote: > elements, say len(a) = 5, len(b) = 3 > >>> a = range(5) > >>> b = range(3) ... > I want the results to be > [(0, 0), (1, 1), (2, 2) , (3) , (4) ] > can it be done?
A bit cumbersome, but at least shows it's possible: >>> def superZip( a, b ): common = min( len(a), len(b) ) results = zip( a[:common], b[:common] ) if len( a ) < len( b ): a = b return results + [ (x,) for x in a[common:] ] >>> superZip( range( 5 ), range( 3 ) ) [(0, 0), (1, 1), (2, 2), (3,), (4,)] >>> superZip( range( 3 ), range( 5 ) ) [(0, 0), (1, 1), (2, 2), (3,), (4,)] >>> superZip( range( 0 ), range( 5 ) ) [(0,), (1,), (2,), (3,), (4,)] >>> superZip( range( 3 ), range( 3 ) ) [(0, 0), (1, 1), (2, 2)] Regards, Ryan Ginstrom -- http://mail.python.org/mailman/listinfo/python-list