python - 根据 Python 列表的长度更改 for 循环的范围
问题描述
如果我有一个清单:
list = [1, 2, 3, 4, 5]
还有一个 for 循环:
for i in range(len(list)):
if list[i] > 3:
list.clear()
list.append(1)
print(list)
现在,这些只是显示我遇到的问题的示例,也就是说,我想根据列表的长度对其进行迭代。如果我满足某个条件,我想修改列表。但是,然后我希望 for 循环根据新列表的长度运行。这样做的主要原因以及为什么我包含 list.clear() 是因为如果列表与定义的列表完全不同,我正在检查的条件也将适用于列表中从 list[ 开始的每个元素0]。
所以基本上,我希望 for 循环根据给定列表的长度运行,然后我希望它根据新列表的长度再次运行,同时检查第一个列表和第二个列表的每次迭代依此类推,直到我想要它打破。
希望我的问题足够清楚。由于我是初学者,因此欢迎任何相当简单的建议。如果有什么我做错了,也请指出。
谢谢你。
解决方案
不建议在迭代列表时对其进行修改。
您需要一种从头开始重新启动 for 循环的方法,您可以通过将其包装在 while 循环中来实现:
flag = True
while flag:
for i in range(len(items)):
if items[i] > 3:
items.clear()
items.append(1)
# break out of the for loop and start over, because flag is still True
break
else if final_condition:
# set flag to false and break out of for loop
flag = False
break
推荐阅读
- azure - 天蓝色。未找到订阅
- nginx - 路径的 Kubernetes 入口白名单 IP
- javascript - 在 TOR 中强制使用不同的电路
- html - 过滤特定页面上的 Blogger 帖子
- python - 在 pandas 数据框中查找元素的最新值
- python - 用于拟合正弦波的神经网络
- docker - 存储库“https://download.docker.com/linx/ubuntu bionic Release”没有发布文件
- c# - 继承类的 Moq 测试总是返回 null
- python-3.x - 如何使用嵌套的for循环返回字符串“1+2+3+..1+2+3+..1+2+3+..”?
- redux - 为什么要使用 redux saga 或 thunk