【发布时间】:2014-10-31 16:05:00
【问题描述】:
假设我有任意数量的可迭代对象,所有这些都可以假定是已排序的,并且包含所有相同类型的元素(整数,为了便于说明)。
a = (1, 2, 3, 4, 5)
b = (2, 4, 5)
c = (1, 2, 3, 5)
我想编写一个生成器函数,产生以下结果:
(1, None, 1)
(2, 2, 2)
(3, None, 3)
(4, 4, None)
(5, 5, 5)
换句话说,逐步产生带有间隙的排序元组,其中输入迭代中缺少元素。
【问题讨论】:
-
使用列表存储当前值有什么问题?
-
如果 all 输入迭代中缺少一个元素,您是否需要以某种方式检测?
-
如果所有元素都缺失,那么不,不需要检测。换句话说,永远不要返回
(None, None, None)。 -
由于性能原因,在这种情况下必须避免使用列表 - 事物不应全部保存在内存中,而应一次处理一个。
-
好吧,下面的建议有效:)
标签: iterator generator python-2.6