目标: 给定有限迭代器
p0,p1,...,pn
,将其转换为(p0,p1),(p1,p2),...,(pn-1,pn),(pn,None)
- 通过一系列连续项的对进行迭代,最后一项是特殊项。
pairwise()
函数在文档中作为itertools
使用示例存在。def pairwise(iterable):
"s -> (s0,s1), (s1,s2), (s2, s3), ..."
a, b = tee(iterable)
next(b, None)
return zip(a, b)
但我还想在迭代器的末尾添加另一个项目(如果它是有限的),并为二元组的第二个元素添加一些默认值(例如 None
)。
如何有效地实现这种额外的功能?