python - 根据 Python 列表的长度更改 for 循环的范围

标签 python for-loop local-variables python-3.7

如果我有一个列表:

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

关于python - 根据 Python 列表的长度更改 for 循环的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53165806/

相关文章:

python - 带有可选参数的 View 中的 Django 永久链接

python - 使用 panda 和 matplotlib 设置 xtick 最大值

c - 在 C 中加载数组及其下标的平方

Python:如何将所有记录写入/打印到文件中

c++ - C4172 和 C4239 返回局部变量

javascript - 如果存在局部窗口变量,如何访问全局窗口变量?

java - 从另一个类访问局部变量

python - 如何在 python 中创建一个加密安全的随机数?

python - 删除 python pandas dataframe 中的所有卓尔 Sprite ,除了

for-loop - 在 For 循环中使用 Each