[EMAIL PROTECTED] wrote:

> suppose i have 2 lists, a, b then have different number of elements,
> say len(a) = 5, len(b) = 3
>>>> a = range(5)
>>>> b = range(3)
>>>> zip(b,a)
> [(0, 0), (1, 1), (2, 2)]
>>>> zip(a,b)
> [(0, 0), (1, 1), (2, 2)]
> 
> I want the results to be
> [(0, 0), (1, 1), (2, 2) , (3) , (4) ]
> can it be done?
> thanks

from itertools import izip, chain, repeat, takewhile, starmap

def zip_longest(*seqs):
    padded = [chain(izip(s), repeat(())) for s in seqs]
    return takewhile(bool, starmap(sum, izip(izip(*padded), repeat(()))))

Just to bring itertools to your attention :-)

Peter
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to