我正在创建一个代码的最后一部分的问题。例如,我试图使列表正常迭代到第3项,但然后检查项目是否为3和其他条件(现在无关紧要),然后将索引更改为从示例10迭代。
我做了很多尝试,但它似乎没有用。
li = [3, 8, 1, 2, 6, 2, 2, 3, 3, 5, 4, 5, 5, 4, 2, 1, 5, 5, 3, 5, 4, 6]
'''
HERE COMES OTHER CODE WHICH WORKS BASED ON THE ITERATION
'''
for i in range(0,len(li)):
print(i)
if i == 3: #along with other condition
def g(li):
global i
i = li[9]
g()
print(i)
也许如果在这里不清楚,我正在寻找的是当3和另一个条件达到条件时,然后它跳到索引9以继续从9开始迭代脚本的其余部分,这将是新值。
我相信我的问题没有问题。但是,虽然循环应该是首选
i=0
while i<len(li):
if i == 3: #along with other condition
i = li[9]
print(i)
continue
i += 1
一个简单的方法来做你想要的是在满足条件时设置一个标志,如果该标志为真,则设置continue
到跳过的索引
li = [3, 8, 1, 2, 6, 2, 2, 3, 3, 5, 4, 5, 5, 4, 2, 1, 5, 5, 3, 5, 4, 6]
'''
HERE COMES OTHER CODE WHICH WORKS BASED ON THE ITERATION
'''
do_skip = False
for i in range(len(li)):
if i == 3: #along with other condition
do_skip = True
# don't skip past a certain point
if do_skip and i < 9:
continue
print(i)
或者,您可以使用while循环:
li = [3, 8, 1, 2, 6, 2, 2, 3, 3, 5, 4, 5, 5, 4, 2, 1, 5, 5, 3, 5, 4, 6]
'''
HERE COMES OTHER CODE WHICH WORKS BASED ON THE ITERATION
'''
i = 0
while i < len(li):
if i == 3: #along with other condition
i = 9
print(i)
# other loop operations go here
i += 1
还有另一种方法:
li = [3, 8, 1, 2, 6, 2, 2, 3, 3, 5, 4, 5, 5, 4, 2, 1, 5, 5, 3, 5, 4, 6]
flag = True # Conditional Flag
for x, i in enumerate(li):
if x > 2 and not flag: break
if 3 > x or x > 8: print(x, "has a value of", i)