如果我有一个列表:
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循环基于给定List的长度运行,然后我希望它根据新List的长度再次运行,同时检查第一个列表的每次迭代和第二个,依此类推,直到我希望它打破为止。
希望我对我的问题很清楚。由于我是初学者,因此欢迎提出任何相当简单的建议。如果我在做任何可怕的事情,也请指出来。
谢谢。
答案 0 :(得分:0)
为什么不这样写:
i = 0
while True:
if i < len(list):
if list[i] > 3:
list.clear()
list.append(1)
i += 1
else:
break
print(list)
希望我很了解你。
答案 1 :(得分:0)
建议您在迭代列表时不建议对其进行修改。
您需要一种从头开始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