在循环内增加for循环
是否可以在循环内增加for循环内的python 3?在循环内增加for循环
例如:
for i in range(0, len(foo_list)):
if foo_list[i] < bar
i += 4
当循环计数器i
得到由4如果条件成立的增加,否则它只是一个递增(或任何步进值是for循环)?
我知道一个while循环会更适用于这样的应用程序,但是很高兴知道for循环中的这个(或类似的东西)是否可能。
谢谢!
根据条件你可以使用一个while循环,并增加i
:
while i < (len(foo_list)):
if foo_list[i] < bar: # if condition is True increment by 4
i += 4
else:
i += 1 # else just increment 1 by one and check next `foo_list[i]`
使用for循环i
将随时返回在接下来的范围值:
foo_list = [1,2,3,4,5,6]
bar = 6
for i in range(len(foo_list)):
print("range i ",i)
if foo_list[i] < bar:
i += 4
print("if i",i)
('range i ', 0)
('if i', 4)
('range i ', 1)
('if i', 5)
('range i ', 2)
('if i', 6)
('range i ', 3)
('if i', 7)
('range i ', 4)
('if i', 8)
('range i ', 5)
我知道我的示例代码没有按照它应该的方式工作。我试图说明我的意思是将循环递增1以上。感谢您的回应! – Kestrel 2014-10-16 20:09:12
没问题,不客气。 – 2014-10-16 20:09:55
while i < end:
# do stuff
# maybe i +=1
# or maybe i += 4
我想你可以for循环做到这一点的,如果你尝试过,但它是不可取的。 Python的for循环的整点是看项目,而不是指数
在你的榜样书面i
将在循环(这似乎有点违反直觉)的每个新的迭代中进行设置,如下所示:
foo_list = [1, 2, 3]
for i in range(len(foo_list)):
print('Before increment:', i)
i += 4
print('After increment', i)
>>>
Before increment: 0
After increment 4
Before increment: 1
After increment 5
Before increment: 2
After increment 6
continue
是跳到下一个单迭代循环的标准/安全的方式,但它会更尴尬链continues
在一起,而不是只使用一个while
环路其他建议。
一个有点hackish ...
>>> b = iter(range(10))
>>> for i in b:
... print(i)
... if i==5 : i = next(b)
...
0
1
2
3
4
5
7
8
9
>>>
这可能是一个X Y问题:林不知道为什么你不会只是处理列表更好地你迭代它之前。也看看这个:'for i,item_in_list in enumerate(foo_list):print(i,item_in_list)' – TehTris 2014-10-16 19:14:37