在for循环期间修改range()

我可以range()在 for 循环期间修改吗?

for i in range(10):
    if something:
        pass
        # change range
    print(i)

一个例子:让 method somethingbei == 5和 body 将减少一个范围。

Expected output:
0
1
2
3
4
5
5
6
7
8
9

我有一个更复杂的range()range(0, len(data), 1024)

谢谢你的帮助!

回答

您不能for在迭代过程中修改循环中使用的生成器。相反,您可以使用while循环重构您的代码。例如,如果您的范围是range(start, stop, step)(使用类似于Python 文档中使用的符号),您可以按如下方式编写循环:

i = start
while i < stop:
    # do stuff
    i += step

这允许您iwhile循环内随意修改。


以上是在for循环期间修改range()的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>