【发布时间】:2019-08-24 03:18:58
【问题描述】:
假设我们有以下代码:
gen = (x for x in range(11))
for el in gen:
print("Printing current element: ", el) #1
if el % 3 == 0:
print("The next item is: ", next(gen)) #2
在这个例子中,我想在#1 行中打印来自生成器的所有数字,另外在#2 行中打印那些可被3 整除的数字。代码必须使用元素方式(而不是索引方式)迭代。还有一个限制是生成器gen 必须保持生成器(由于内存限制)并且不能使用,例如作为reversed(list(gen))中的列表。
由于next(gen),当前实现使迭代跳过数字。
【问题讨论】:
-
你不需要
"The next item is: ", el吗? (正如您所说,您需要在此行中打印可被 3 整除的内容)。
标签: python for-loop iterator next