簡體   English   中英

在python中跳過for循環中的迭代?

[英]skip iterations in for loop in python?

我之前已經用C ++編程,但是我是Python的新手。 我進行了搜索,但找不到合適的答案。 在C ++中,我可以執行以下操作:

for(int i=0; i<10;i++)
{
   i+=5;
   std::cout<<i<<std::endl
}

我的值將是5和11。但是如果我這樣做,則在python中:

for i in range(0,10):
   i+=5
   print i

i的值確實會針對該循環的迭代進行更新,但在下一次迭代中,它將變為1。雖然我確實理解在python中,每次迭代后,我都會在range生成的元組/列表中包含下一個值,但是有什么辦法可以使它像C ++那樣跳過迭代? 我真的不想使用next()函數5次

編輯:我可以將范圍函數的第三個參數用於一般用途,但是如果我只想滿足某個條件就想跳過一些迭代該怎么辦呢? 例如

for(int i=0; i<10;i++)
{
   if(i%2)i+=1;
   std::cout<<i<<std::endl
}

如果要在條件為真時跳過迭代,請使用continue

for i in range(10):
    if i % 2:
        continue
    print(i)

我知道您在想什么,但是python內置了一些功能,可讓您在range()函數內設置迭代步驟。 range()上的官方Python文檔。

本質上,要在每次迭代后跳過x ,您可以執行以下操作:

for i in range(start, stop, x + 1):
    # functions and stuff

希望這會有所幫助。

您可以使用常規的while循環。 它看起來會不太好,但是可以完成工作。 例如:

i = 0
while i < 100:
    print i
    if i % 2 == 0:
        i += 5
    i+=1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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