你好朋友在学习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)
答案 0 :(得分:0)
有一个解决方案,但它会让你的代码有些复杂化。
它不需要if
函数,但它确实需要while
和try
循环。
如果您想更改跳过的数字,则只需更改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