Python itertools链:可以使用None填充较短的iterable

时间:2013-11-06 12:34:00

标签: python itertools chain

使用itertools.chain方法展平列表时:

list(itertools.chain(*zip(itr1,itr2)))

是否可以像itertools.imap中那样用无填充更短的可迭代?所以我不会最终:

In [1]: a = [1]
In [2]: b=[]

In [3]: list(itertools.chain(*zip(a,b))) 
Out[3]: []

1 个答案:

答案 0 :(得分:4)

使用itertools.izip_longest,将默认值传递给fillvalue参数。

演示:

In [1]: from itertools import chain, izip_longest

In [2]: a = [1]

In [3]: b = []

In [5]: list(chain(*izip_longest(a, b, fillvalue='foo')))
Out[5]: [1, 'foo']

fillvalue的默认值为None