使用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]: []
答案 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
。