在python中修改for循环中的迭代器
@Padraic Cunningham如果你想让我删除 问题 我是python新手。我想根据某些条件跳过一些迭代器值。这在C语言中很容易,但在python中我遇到了困难 所以请帮助我理解为什么这里的代码循环100次而不是10次在python中修改for循环中的迭代器,python,Python,@Padraic Cunningham如果你想让我删除 问题 我是python新手。我想根据某些条件跳过一些迭代器值。这在C语言中很容易,但在python中我遇到了困难 所以请帮助我理解为什么这里的代码循环100次而不是10次 for i in range(100): print i i = i +10 编辑:我知道可以选择更改for循环的步长。但我对动态更改迭代器变量感兴趣,就像我们在C中可以做的那样。好吧,我明白了,因为循环在python中不同于在C中。简单的方法是使用w
for i in range(100):
print i
i = i +10
编辑:我知道可以选择更改for循环的步长。但我对动态更改迭代器变量感兴趣,就像我们在C中可以做的那样。好吧,我明白了,因为循环在python中不同于在C中。简单的方法是使用while循环,我在代码中做到了这一点,它起到了作用。谢谢社区 要执行此操作,请使用while循环。在for循环中更改迭代器不会改变迭代次数,相反,您可以这样做
i=0
while i < 100:
print i
i = i +10
i=0
当我<100时:
打印i
i=i+10
for循环正在iterable范围(100)
中穿行
修改当前值不会影响iterable中接下来出现的内容(实际上,您可以拥有任何iterable;下一个值可能不是数字!)
选项1:
i = 0
while i < 100:
i += 4
for i in range(0,100,10):
pass
此示例可能会更清楚地说明为什么您的方法没有多大意义:
for i in [1,2,3,4,5,'cat','fish']:
i = i + i
print i
这是完全有效的python代码(定义了字符串添加);修改iterable将需要一些不直观的内容
如果您尝试此代码,它应该可以工作
for i in range(100)[::10]:
print i
[::10]的工作原理类似于字符串切片。[起始位置:停止位置:每个循环中的步数]
我没有使用前两个值,所以它们被设置为默认的第一个位置和最后一个位置。我刚刚告诉它将步骤分为10步。如果你想修改迭代器,你可以这样做:
iterator= iter(range(100))
for i in iterator:
print (i)
for k in range(9): next(iterator)
但是没有实际的兴趣 即使在C语言中,在循环过程中修改迭代变量也是一个坏主意。看看
step
的功能。我知道我可以将步长更改为10,但我想在运行时任意更改步长,比如在一些“if条件”中。我也理解更改迭代变量是个坏主意,但我仍然希望这样做。谢谢你,while循环为我工作。将阅读有关python中迭代器概念的更多信息。