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

Python itertools链:可以用None填充较短的iterable,python,itertools,chain,Python,Itertools,Chain,使用itertools.chain方法展平列表时,如下所示: list(itertools.chain(*zip(itr1,itr2))) 是否可以在较短的iterable中填充None,例如itertools.imap?因此,我不会以以下方式结束: In [1]: a = [1] In [2]: b=[] In [3]: list(itertools.chain(*zip(a,b))) Out[3]: [] 使用,将默认值传递给fillvalue参数 演示: fillvalue的默认值

使用
itertools.chain
方法展平列表时,如下所示:

list(itertools.chain(*zip(itr1,itr2)))
是否可以在较短的iterable中填充None,例如
itertools.imap
?因此,我不会以以下方式结束:

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

In [3]: list(itertools.chain(*zip(a,b))) 
Out[3]: []
使用,将默认值传递给
fillvalue
参数

演示:

fillvalue
的默认值为
None

使用,将默认值传递给
fillvalue
参数

演示:


fillvalue
的默认值是
None

您到底想实现什么?如果您正在配对项目,但没有匹配对,那么fillvalue实际上可以吗?根据您的示例,您是想要
[1,无]
还是更喜欢
[1]
?这是可以的,但这里不详细介绍。假设我需要这个数据结构的算法不是最漂亮的。你到底想实现什么?如果您正在配对项目,但没有匹配对,那么fillvalue实际上可以吗?根据您的示例,您是想要
[1,无]
还是更喜欢
[1]
?这是可以的,但这里不详细介绍。让我们假设我需要这个数据结构的算法不是最漂亮的。
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']