在python中修改for循环中的迭代器

时间:2016-04-15 20:10:33

标签: python

  

@ Padraic Cunningham让我知道你是否要我删除   问题

我是python的新手。我想根据某些条件跳过一些迭代器值。这在C中很容易,但在python中我很难过。

所以请帮助我理解为什么这里的代码循环100次而不是10次。

div#header { background-image: url('http://www.google.ca/images/header-background.jpg'); } div#header { background-image: url('images/header-background.jpg'); }
href="http://www.google.ca/wtfguys.css" href="wtfguys.css"

编辑:据我所知,可以选择更改for循环的步长。但我感兴趣的是动态更改迭代器变量,就像我们在C中可以做的那样。好吧,我明白了,因为循环在python中比在C中不同。简单的方法是使用while循环,我在我的代码中做到了它起作用了。谢谢社区!

4 个答案:

答案 0 :(得分:4)

for循环遍历可迭代range(100)

修改当前值不会影响迭代中接下来出现的内容(实际上,您可以使用任何可迭代的内容;下一个值可能不是数字!)。

选项1 use a while loop

i = 0
while i < 100:
    i += 4

Option 2,使用范围的内置步长参数:

 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需要一些不直观的东西。

See here for more information on how iterables work, and how to modify them dynamically

答案 1 :(得分:2)

要执行此操作,请使用while循环。如果迭代次数,则更改for循环中的迭代器不会更改数量而是可以执行

i=0
while i < 100:
    print i
    i = i +10

答案 2 :(得分:1)

如果要修改迭代器,可以执行以下操作:

iterator= iter(range(100))
for i in iterator:
    print (i)
    for k in range(9): next(iterator)

但没有实际意义!

答案 3 :(得分:0)

如果您尝试使用此代码,则应该可以使用。

for i in range(100)[::10]:
    print i

[:: 10]就像字符串切片一样工作。 [开始时的第一个位置:停止的位置:每个循环中的步数]

我没有使用前两个值,因此将它们设置为默认的第一个位置和最后一个位置。我只是告诉它要做出10步。