从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