簡體   English   中英

根據Python列表的長度更改for循環的范圍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM