[英]Understanding errors in attempts to skip N iterations of a loop
我想跳過循環的 3 次迭代,並進行了各種嘗試。
我想知道如何正確地做到這一點,但更重要的是,我想了解為什么這些嘗試都以不同的方式失敗。 請問你能解釋一下嗎?
這些數字只是示例。 我如何真正使用它。 你的列表可能是["donut", "carrot", "apple", "apple", "burger"]
,當你到達carrot
時,你發現你必須跳過兩個項目(一只狗吃了你的兩個食物)這樣你的迭代應該是["donut", "apple", "burger"]
。 所以你事先不知道要跳過哪些迭代。 您只需獲得要跳過的條件和迭代次數。
編號 1。這根本不會跳過任何迭代。
l = list(range(10))
for i in l:
if i == 3:
for j in range(3):
continue
print(i)
2號。這會跳過一些迭代,重復一個迭代,混合一些迭代,真的是一團糟。
l = list(range(10))
for i in l:
if i == 3:
l.pop(i)
l.pop(i+1)
l.pop(i+2)
print(i)
編號 3。這只會跳過一次迭代。
l = list(range(10))
for i in l:
if i == 3:
continue
continue
continue
print(i)
NUMBER 4.這給出了語法錯誤。
l = list(range(10))
for i in l:
if i == 3:
continue 3
print(i)
編號 5。這將跳過所有剩余的迭代。
l = list(range(10))
countdown = 0
for i in l:
if i == 3:
countdown = 3
if countdown > 0:
cuntdown = countdown - 1
continue
print(i)
每種情況下出了什么問題,我還能嘗試什么?
您的數字 5 代碼可以正常工作,但有趣的是,您在第二個if
語句中編寫cuntdown
而不是countdown
。
這就是其他人不起作用的原因:
數字 1: Continue
僅將您的代碼移動到當前正在執行的循環的下一個迭代中。 在此示例中,它只是移動到for j in range(3):
而不是for i in l
,因此不會跳過原始循環的迭代。
數字 2:在這里,您在迭代列表時彈出列表的元素。 這並不是真正可取的,因為您最終會出現索引錯誤或類似的東西。
數字 3:這只會跳過一次迭代,因為一旦你的第一個Continue
被執行,循環立即移動到i == 4
的循環,並且剩余的Continue
永遠不會執行。
數字 4: Continue 3
不是與Continue
一起使用的正確語法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.