在python中跳过for循环中的迭代

skip iterations in for loop in python?

本文关键字:循环 for 迭代 python      更新时间:2023-10-16

我以前用c++编程过,但我是Python的新手。我搜索了这个,但我没能找到合适的答案。在c++中,我可以这样做:

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

i的值为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)

您可以使用常规的while循环。它看起来不那么漂亮,但它起到了作用。例如:

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

我知道你在想什么,但是python有一些内置的东西允许你在range()函数中设置迭代步骤。这里是range()的官方Python文档。

实际上,要在每次迭代之后跳过x,您可以这样做:

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

希望有帮助。