跳过列表并修改 python 中的全局索引



我在创建代码的最后一部分时遇到问题。例如,我正在尝试使列表正常迭代到项目 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)

最新更新