python - Python:如何在“for”循环中的某些条件后修改迭代器值
问题描述
在这样的循环中,如果变量 no 等于 8,如何再次返回第 8 个循环?我做不到,我很困惑。
no -= 1 命令不起作用
for no in range(0,100):
print("No:",no)
if no == 8:
no -= 1
print("8 done return again")
解决方案
在这里修改变量no
不会做你想要的,因为 Python 的循环从迭代器中for no in range(...):
获取值。该迭代器不知道变量,并且无论您做什么,都会继续产生范围内的值。no
range
no
no
解决问题的一种方法是使用while
循环并自己显式控制循环变量no
。一种更“Pythonic”的方式是用来itertools
构造一个产生数字的无限迭代器
0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 8, 8, 8, 8...
例如:
from itertools import chain, repeat
for no in chain(range(8), repeat(8)):
print("No:", no)
请记住,您仍然需要一些方法来摆脱无限循环。
推荐阅读
- typescript - 打字稿。定义泛型
键作为字符串 - python - 我收到错误消息“TypeError:预期的字符串或类似字节的对象”我该如何解决?
- r - 根据用户对 radioButtons() 的选择,使用 downloadHandler() 动态下载闪亮的文件
- reactjs - 将图像文件上传到 Mongodb 会创建一个空项目。反应 JS
- rust - 如何使用任意键类型序列化和反序列化 BTreeMap?
- node.js - 编写此 Node.js 逻辑以从 Google Cloud Storage 检索和更新 CSV 数据的更具可扩展性的方式?
- java - Maven 项目编译错误:找不到符号(即 java.lang.String)
- spatial - 如何在 Grakn 中定义多边形?
- javascript - 左右未选中的单选按钮的总和值
- python - 如何使用appium删除带有空格的文件?