避免在 Python Generator 中使用多个 Next() 语句

dre*_*boy 0 python iteration iterator yield generator

我正在使用一个返回生成器的库。有没有办法在不使用多个next()语句的情况从特定迭代开始?

在一个简单的 for 循环中,我可以执行以下操作。

array = [2, 5, 1, 4, 3]

for i in array [2:]:
    # do something
Run Code Online (Sandbox Code Playgroud)

在发电机中,我不能做如上所示。相反,我必须使用多个next ()语句从第三个索引开始。尝试执行与 for 循环相同的操作时,我收到一条错误消息,指出“生成器不可编写脚本”。

Sha*_*ger 7

itertools.islice这样做,但实际上,它只是next为您一遍又一遍地调用(尽管在 CPython 中的 C 层,因此它比手动执行要快)。

for i in itertools.islice(mygenerator, 2, None):
    # do something
Run Code Online (Sandbox Code Playgroud)