python - 在 for 循环期间修改 range()
问题描述
range()
我可以在 for 循环期间修改吗?
for i in range(10):
if something:
pass
# change range
print(i)
一个例子:让方法something
是i == 5
,身体将减少一个范围。
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
这允许您i
在while
循环内随意修改。
推荐阅读
- r - ddplyr 按年份汇总,包括年份计数
- python - 将 Pandas 文本列中的 LDA 结果矢量化为多列
- javascript - 尝试链接更多草图时没有显示草图
- azure-aks - 为什么需要此 Azure 防火墙规则?
- java - 使用 Java 8 仅在列表中查找重复的字符串属性
- c# - 在 Gridview 上设置三个 if else 条件
- node.js - 当我执行 npm run start 时出现错误
- c++ - .wav 文件上的快速傅里叶变换给出了奇怪的结果
- javascript - 使用 Javascript 在 Youtube 上切换电影模式
- php - PHP 是否支持递归处理 xi:include 元素?