在python中在特定条件下更改for循环的迭代器的值

时间:2015-10-15 12:30:48

标签: python-3.x

你好朋友在学习python的过程中我想到了有什么方法可以直接跳转到迭代器的特定值而无需迭代示例

a=range(1.10) or (1,2,3,4,5,6,7,8,9)
for i in a
    print ("value of i:",i)
    if (certain condition)

 #this condition will make iterator to directly jump on certain value of                    
 #loop here say if currently i=2 and after this it will directly jump the 
 #the iteration value of i=8 bypassing the iterations from 3 to 7 and 
 #saving the cycles of CPU)

2 个答案:

答案 0 :(得分:0)

有一个解决方案,但它会让你的代码有些复杂化。

它不需要if函数,但它确实需要whiletry循环。

如果您想更改跳过的数字,则只需更改for _ in range()声明。

这是代码:

a = [1,2,3,4,5,6,7,8,9,10]
at = iter(a)
while True:
    try:
        a_next = next(at)
        print(a_next)
        if a_next == 3:
            for _ in range(4, 8):
                a_next = next(at)
            a_next = str(a_next)
            print(a_next) 
    except StopIteration:
        break

答案 1 :(得分:0)

迭代器接口基于next方法。需要多次下一次调用才能在迭代中推进多个元素。没有捷径。

如果只迭代序列,你可以放弃interator并编写一个老式的C代码,允许你移动索引:

a = [1,2,3,4,5,6,7,8,9,10]
a_len = len(a)
i = 0
while i < a_len:
    print(a[i])
    if i == 2:
        i = 8
        continue
    i += 1