📜  从Python中的 For 循环内部增加迭代器的方法

📅  最后修改于: 2022-05-13 01:55:16.969000             🧑  作者: Mango

从Python中的 For 循环内部增加迭代器的方法

For 循环,通常用于顺序遍历。它属于确定迭代的范畴。确定的迭代意味着重复的次数是事先明确指定的。但是你有没有想过,如果你试图从 for 循环内部增加迭代器的值,会发生什么。让我们在下面的例子的帮助下看看。
例子:

Python3
lis = [1, 2, 3, 4, 5]
 
for i in range(len(lis)):
     
    print(lis[i])
    i += 2


Python
# Using while loop
 
lis = [1, 2, 3, 4, 5]
i = 0
 
while(i < len(lis)):
    print(lis[i], end = " ")
     
    # Changing the value of
    # i inside the loop will
    # change it's value at the
    # time of checking condition
    i += 2


Python
# Using for loop
 
lis = [1, 2, 3, 4, 5]
 
i = 0
 
for j in range(len(lis)):
 
    # Terminating condition for i
    if(i >= len(lis)):
        break
     
    print(lis[i], end = " ")   
    i += 2


Python3
# Using for loop
 
lis = [1, 2, 3, 4, 5]
 
for i in range(0, len(lis), 2):
     
    print(lis[i], end = " ")


输出:

1
2
3
4
5

上面的示例显示了 for 循环的这种奇怪行为,因为Python中的 for 循环不是 C 风格的约定 for 循环,即 for (i=0; i

  • 使用 While 循环:我们不能直接增加/减少 for 循环体内的迭代值,我们可以为此目的使用 while 循环。
    例子:

Python

# Using while loop
 
lis = [1, 2, 3, 4, 5]
i = 0
 
while(i < len(lis)):
    print(lis[i], end = " ")
     
    # Changing the value of
    # i inside the loop will
    # change it's value at the
    # time of checking condition
    i += 2
    
  • 输出:
1 3 5
  • 使用另一个变量:我们可以为相同的目的使用另一个变量,因为每次迭代后循环变量的值都会重新初始化。
    例子:

Python

# Using for loop
 
lis = [1, 2, 3, 4, 5]
 
i = 0
 
for j in range(len(lis)):
 
    # Terminating condition for i
    if(i >= len(lis)):
        break
     
    print(lis[i], end = " ")   
    i += 2
  • 输出:
1 3 5
  • 使用范围函数:我们可以使用范围函数作为该函数的第三个参数指定步长。
    注意:有关更多信息,请参阅Python range()函数。
    例子:

Python3

# Using for loop
 
lis = [1, 2, 3, 4, 5]
 
for i in range(0, len(lis), 2):
     
    print(lis[i], end = " ")   
  • 输出:
1 3 5