假设我们有一个迭代器(无限的),它返回列表(或有限迭代器),例如由以下代码返回的迭代器:
infinite = itertools.cycle([[1,2,3]])
注意:这不是仅仅将嵌套列表展平的问题——尝试详尽处理列表的解决方案无法工作,例如[item for sublist in infinite for item in sublist]
会耗尽内存。
有没有一个好的Python惯用语来获取一个迭代器(显然是无限的),它将返回第一个迭代器中的每个元素,然后是第二个迭代器中的每个元素,以此类推。在上面的例子中,它将返回1,2,3,1,2,3,...
。由于迭代器是无限的,因此itertools.chain(*infinite)
将无法工作。