[英]Changing the range of a for loop based on the length of a list for Python
如果我有清單:
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的長度再次運行,同時檢查第一個列表和第二個列表的每次迭代以此類推,直到我希望它打破為止。
希望我對我的問題很清楚。 由於我是初學者,因此歡迎提出任何相當簡單的建議。 如果我在做任何可怕的事情,也請指出。
謝謝。
你為什么不這樣寫:
i = 0
while True:
if i < len(list):
if list[i] > 3:
list.clear()
list.append(1)
i += 1
else:
break
print(list)
希望我能很好地理解你。
建議您在迭代列表時不建議對其進行修改。
您需要一種從頭開始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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.